DBO*_*BOn 1 sql t-sql sql-server
我试图在一个SQL查询中应用两个条件.
(select DISTINCT (
CASE WHEN (
ABC.GemUserID = '99' )
OR ABC.GemUserID != '99'
THEN 'Yes'
ELSE 'No'
END)) AS AllWell
Run Code Online (Sandbox Code Playgroud)
这使我的输出为"是",因为CASE仅适用于下面的1个文件:
目前的结果:
99 , Yes
99 , Yes
99 , Yes
Run Code Online (Sandbox Code Playgroud)
预期结果:
99 , No
99 , No
99 , Yes
Run Code Online (Sandbox Code Playgroud)
我使用以下查询,但SQL查询Intellisence将其识别为错误.
查询错误:
(select DISTINCT (
CASE WHEN ( ABC.GEMUserID = '99' THEN 'Yes' else 'No'
CASE WHEN ( ABC.GEMUserID != '99' THEN 'No' else 'Yes'
END)) AS AllWell
Run Code Online (Sandbox Code Playgroud)
修复上述错误查询后:
(select DISTINCT
(CASE WHEN ABC.GemUserID = '99' THEN 'Yes' else 'No' END),
(CASE WHEN ABC.GemUserID != '99' THEN 'No' else 'Yes' END))
AS AllWell
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
消息116,级别16,状态1,行17当子查询未与EXISTS一起引入时,只能在选择列表中指定一个表达式.
如何解决这个问题?
select distinct是 - 本身 - SQL语法的一部分.这distinct不是一个功能.不应该用括号括起来.所以,如果我理解你的问题:
select DISTINCT
( CASE WHEN ABC.GEMUserID = '99' THEN 'Yes' else 'No' END),
( CASE WHEN ABC.GEMUserID <> '99' THEN 'No' else 'Yes' END) as AllWell
Run Code Online (Sandbox Code Playgroud)
你打算给第一列命名吗?
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |