如果满足某些条件,则连接sql select语句中的列名
我有一个SQL如果满足某些条件,则连接sql select语句中的列名,sql,concatenation,Sql,Concatenation,我有一个SQLSELECT语句,其中包含4列: SELECT cmm_residence, cmm_packing, cmm_furniture, cmm_overage 这些列是简单的否/是值(0,1)。我需要一个附加列Description来连接该行的任何“Yes”值 例如:如果查询为cmm\u住宅和cmm\u家具返回“是”,则说明列应为cmm\u住宅,cmm\u家具,您可以在SELECT语句中使用案例,添加您需要的任何逻辑,如下所示: SELECT cmm_residence, cmm_
SELECT
语句,其中包含4列:
SELECT cmm_residence, cmm_packing, cmm_furniture, cmm_overage
这些列是简单的否/是值(0,1)。我需要一个附加列Description
来连接该行的任何“Yes”值
例如:如果查询为
cmm\u住宅
和cmm\u家具
返回“是”,则说明
列应为cmm\u住宅,cmm\u家具
,您可以在SELECT语句中使用案例,添加您需要的任何逻辑,如下所示:
SELECT cmm_residence, cmm_packing, cmm_furniture, cmm_overage,
CASE
WHEN cmm_residence = 1 THEN 'cmm_residence'
WHEN cmm_packing = 1 THEN 'cmm_packing'
ELSE ''
END As 'Description'
FROM Table
只需添加任意数量的逻辑案例,考虑到这不是一个性能很好的查询。Schema和insert语句:
create table mytable (cmm_residence varchar(5), cmm_packing varchar(5), cmm_furniture varchar(5), cmm_overage varchar(5));
insert into mytable values('yes','no','no','yes');
insert into mytable values('no','no','no','yes');
insert into mytable values('yes','yes','no','yes');
查询:
select cmm_residence, cmm_packing, cmm_furniture, cmm_overage,
concat(case when cmm_residence='yes' then ' cmm_residence ,'end,
case when cmm_packing='yes' then ' cmm_packing ,'end,
case when cmm_furniture='yes' then ' cmm_furniture ,'end,
case when cmm_overage='yes' then ' cmm_overage 'end)Description
from mytable
输出:
cmm_公寓
三坐标测量机包装
cmm_家具
三坐标测量机过剩
描述
对
不
不
对
cmm_公寓,cmm_超龄公寓
不
不
不
对
三坐标测量机过剩
对
对
不
对
cmm_住宅、cmm_包装、cmm_超龄
到目前为止你试过什么?您的查询有什么问题?您使用的是哪种dbms?我了解Concat函数是如何工作的,我只是不知道如何将该函数转换为utlize Case。下面的另一位用户帮助我澄清了一些问题。仍然在摸索学习SQL。谢谢你的回复,我很感激。正是我所需要的,谢谢!这也行,谢谢!