SELECT users.first_name, users.last_name, users.email,
(case
when user.AT_ST ='A' then 'Act'
when user.AT_ET = 'E' then 'Est'
end) as Act_Est
FROM users LEFT OUTER JOIN locations
ON users.id = locations.user_id
WHERE Act_Est IN (' ')
這裏這個別名想用在同一個查詢中,而不是用其他子查詢創建。 因爲如果我使用其他選擇子查詢,它會獲取第一個內部子查詢並首先檢索所有數據,然後應用where條件。在查詢中定義的列別名在SQL服務器中如何在相同的查詢中使用where子句
所以需要一些幫助。
建議:如果您只打算處理「A」和「E」,然後在「WHERE」子句中過濾,則在CASE語句中使用ELSE。 – Arulkumar
[SELECT語句的邏輯處理順序](https://msdn.microsoft.com/en-us/library/ms189499.aspx#Anchor_2):「...因爲SELECT子句是第8步,任何列別名或在該子句中定義的派生列不能被前面的子句引用「。 WHERE是第4步。 –