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

标签 sql sql-server tsql

我有4个完全相同的CASE条件的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]

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

最佳答案

我认为在严格的SQL中这是不可能的。一些数据库引擎可能支持它作为扩展。您可能可以通过其他某种机制在功能上完成相同的事情,尽管...可能使用JOIN或UNION。

关于sql - 是否可以使用1个case语句返回多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498806/

相关文章:

sql - 在单个查询中从他们的 ID 获取相关数据的最佳方法是什么?

php - Mysql变量不能通过php工作

sql-server - 在 MS SQL 下使用关联迁移时的问题

SQL Server 在 2 个(或多个)聚合上进行透视

sql - 如何在没有字符串最后一部分的情况下更新

sql - Sequelize belongsToMany 关联不通过表工作

php - 绑定(bind)多个参数匹配全文搜索

sql - 您能否在 T-SQL MERGE 部分执行更多操作?

sql-server - t-sql转义问题

sql - Transact SQL子查询调用函数的语法不正确