我需要在选择语句中添加一个case语句,但是我似乎无法正确理解语法,有人可以帮忙吗?
SELECT
uuid = pnt.ID
,extras = (CASE (SELECT pnt.TypeID as [type], pnt.Source as source)
WHEN source = 7 THEN 'a'
WHEN source = 1 AND [type] = 0 THEN 'b'
WHEN source = 8 THEN 'c'
WHEN source = 2 AND [type] = 0 THEN 'd'
WHEN source = 3 AND [type] IN (5,6,7,8) THEN 'e'
ELSE NULL
END)
FROM
Mydata as pnt
存在多个问题,案例中的选择不正确,条件source = 7是错误的,与AND的组合条件是错误的,而使用IN的条件是不正确的。
我将对“多条标准的案情陈述”的回答用作案情陈述的基础。
有两种类型的case语句:
https://msdn.microsoft.com/zh-CN/library/ms144841(v=sql.105).aspx
在您的脚本中,您正在“混合”它们,因此您的脚本不起作用。这可能是一个很好的解决方案:
SELECT
pnt.ID
,CASE
WHEN pnt.source = 7 THEN 'a'
WHEN pnt.source = 1 AND pnt.TypeID = 0 THEN 'b'
WHEN pnt.source = 8 THEN 'c'
WHEN pnt.source = 2 AND pnt.TypeID = 0 THEN 'd'
WHEN pnt.source = 3 AND pnt.TypeID IN (5, 6, 7, 8) THEN 'e'
ELSE NULL
END
FROM
@Mydata AS pnt
警告!如果需要填充单个变量(uuid,其他),则必须确保查询的结果只有1条记录
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句