[英]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.