mam*_*esh 40 sql sql-server sql-server-2005
有没有办法用IN子句制作CASE语句?
SELECT
CASE c.Number
IN ('1121231','31242323') THEN 1
IN ('234523','2342423') THEN 2
END AS Test
FROM tblClient c
Run Code Online (Sandbox Code Playgroud)
Mar*_*ith 86
是.您需要使用"搜索"表单而不是CASE表达式的"简单"形式
SELECT CASE
WHEN c.Number IN ( '1121231', '31242323' ) THEN 1
WHEN c.Number IN ( '234523', '2342423' ) THEN 2
END AS Test
FROM tblClient c
Run Code Online (Sandbox Code Playgroud)
您可以从多个匹配中返回相同的值:
SELECT
CASE c.Number
WHEN '1121231' THEN 1
WHEN '31242323' THEN 1
WHEN '234523' THEN 2
WHEN '2342423' THEN 2
END AS Test
FROM tblClient c
Run Code Online (Sandbox Code Playgroud)
这可能会导致与Martins建议相同的执行计划,因此更多的是您想要如何编写它.
| 归档时间: |
|
| 查看次数: |
113998 次 |
| 最近记录: |