him*_*056 9 sql sql-server case where-clause multiple-conditions
我想检索条件in WHERE
子句中的数据.
这是我的表看起来像:
Name Location Age
----------------------
AAA Bhuj 24
BBB Mumbai 22
CCC Bhuj 18
DDD Bhuj 27
EEE Mumbai 26
Run Code Online (Sandbox Code Playgroud)
我的WHERE
条款是:
if location = 'Bhuj' then Age>20 else if location = 'Mumbai' then Age>25
我正在尝试使用此代码来实现此目的:
SELECT * FROM testing
WHERE
CASE Location WHEN 'Bhuj' THEN Age>20
WHEN 'Mumbai' THEN Age>25
END;
Run Code Online (Sandbox Code Playgroud)
此代码适用于MySQL(请参阅此SQLFiddle),但不适用于SQL Server(请参阅此SQLFiddle)并给出以下错误:
'>'附近的语法不正确:SELECT*FROM测试WHERE case位置当'Bhuj'然后Age> 20当'Mumbai'然后Age> 25 end
有什么建议吗?
hgu*_*yan 15
我认为这是你想要实现的目标
SELECT *
FROM testing
WHERE (Location = 'Bhuj' AND Age>20)
OR (Location = 'Mumbai' AND Age>25)
Run Code Online (Sandbox Code Playgroud)
更新:
Case语句返回一个值,你不能在里面有一个条件.
SELECT * FROM testing
WHERE
Age > case Location When 'Bhuj' then 20
When 'Mumbai' then 25
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30635 次 |
最近记录: |