[英]SQL search script from CASE statement
請幫我解決一下這個。
SELECT
Username,
CASE
WHEN UserType = 'DUMMY' AND UserLoginId = Username THEN 'Awaiting_Approval'
WHEN UserType = 'DUMMY' AND UserLoginId != Username THEN 'Checking_Approval'
ELSE 'No_Status_Yet'
END AS UserStatus
FROM MyTable
WHERE UserStatus LIKE '%king%'
我嘗試通過數據庫中的文本創建簡單搜索,因此我可以在文本的中間搜索。 由於那里沒有狀態列,我自己從2列詳細信息的組合創建它。 誰能幫我。 謝謝。
您不能在WHERE子句中直接使用別名,請嘗試下面的一個
SELECT *
FROM (
SELECT Username,
CASE
WHEN UserType = 'DUMMY' AND UserLoginId = Username THEN 'Awaiting_Approval'
WHEN UserType = 'DUMMY' AND UserLoginId != Username THEN 'Checking_Approval'
ELSE 'No_Status_Yet'
END AS UserStatus
FROM MyTable
) AS D
WHERE UserStatus LIKE '%king%'
或者,您可以在WHERE
子句中添加case表達式。
喜歡
SELECT
Username,
'Checking_Approval' AS UserStatus
FROM MyTable
WHERE 1 = CASE WHEN UserType = 'DUMMY' AND UserLoginId != Username THEN 1
--other conditions that should be returned here
ELSE 0
END
您可以使用HAVING關鍵字(僅適用於MySQL):
SELECT
Username,
CASE
WHEN UserType = 'DUMMY' AND UserLoginId = Username THEN 'Awaiting_Approval'
WHEN UserType = 'DUMMY' AND UserLoginId != Username THEN 'Checking_Approval'
ELSE 'No_Status_Yet'
END AS UserStatus
FROM MyTable
HAVING UserStatus LIKE '%king%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.