[英]SQL search script from CASE statement
Please help me with this. 请帮我解决一下这个。
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%'
I try to create simple search by text from database, so I can search by middle of the text. 我尝试通过数据库中的文本创建简单搜索,因此我可以在文本的中间搜索。 Because of there is no status column in there, I create it myself from combination of 2 column details.
由于那里没有状态列,我自己从2列详细信息的组合创建它。 Can anyone help me.
谁能帮我。 Thanks.
谢谢。
You can't use a alias directly in WHERE clause, try the below one 您不能在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%'
As an alternative, you could add your case expression on the WHERE
clause. 或者,您可以在
WHERE
子句中添加case表达式。
Like 喜欢
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
You can use HAVING keyword (works only in MySQL): 您可以使用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.