是否可以使用1个case语句返回多个列?

mam*_*esh 6 sql t-sql sql-server

我有4个案例陈述完全相同的CASE标准,但它们都有不同的THEN/ELSE陈述.

是否可以将其全部合二为一,或者我是否需要将这些全部分开并多次复制和粘贴代码?

,CASE WHEN lm.Id IN ('1','2','3') THEN lm.name ELSE lm.Desc END AS [Column1]
,CASE WHEN lm.Id IN ('1','2','3') THEN '3' ELSE '1' END AS [Column2]
,CASE WHEN lm.Id IN ('1','2','3') THEN 'True' ELSE 'False' END AS [Column3]
Run Code Online (Sandbox Code Playgroud)

用更少的代码可以做到这一点吗?

Fli*_*mzy 9

我不认为这在严格的SQL中是可行的.某些数据库引擎可能会支持它作为扩展.你可以通过其他机制在功能上完成同样的事情,但是......可能有一个JOIN或一个UNION.