簡體   English   中英

SQL:別名列上的內連接

[英]SQL: inner join on alias column

以前我曾要求從字段中刪除文本並將其轉換為int,這可以成功運行。 但是現在,我想對這個新值進行INNER JOIN。

所以我有這個:

SELECT CONVERT(int, SUBSTRING(accountingTab.id, PATINDEX('%[0-9]%', accountingTab.id), 999)) 
AS 'memId',  userDetails.title, userDetails.lname 
FROM accountingTab INNER JOIN
(SELECT id, title, first, last FROM memDetTab) AS userDetails ON memID = userDetails.id

然后我得到無效列名稱memID錯誤。

我怎樣才能解決這個問題?

您可以重復整個表達式或反轉您的聯接:


SELECT *
FROM memDetTab
    JOIN (SELECT CONVERT(int, SUBSTRING(accountingTab.id, PATINDEX('%[0-9]%', accountingTab.id), 999)) AS 'memId', userDetails.title, userDetails.lname
FROM accountingTab) subquery
    ON subquery.memID = memDetTab.ID

而不是memId,重復整個表達式。

如果必須這樣做,則存在設計問題。 如果你能,我建議你需要重構你的桌子或關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM