MS sql在select中合并列
我正在尝试将多个列(varchar,但用于存储布尔值“Y”或“”)组合到一个具有人类可读文本的列(列表)中 表格布局如下所示:MS sql在select中合并列,sql,sql-server,Sql,Sql Server,我正在尝试将多个列(varchar,但用于存储布尔值“Y”或“”)组合到一个具有人类可读文本的列(列表)中 表格布局如下所示: MEMBER_ID (int) | PROC (varchar) | 50K_12_MTHS (varchar) | 100K_12_MTHS (varchar) 1|||| 2|Y|Y|| 3|Y|Y|Y| 4|Y||| 对于我尝试获取的able样本的输出: 1| 2|Proc, 50 3|Proc, 50, 100 4|Proc 我认为这样做的方法是使用一个案例
MEMBER_ID (int) | PROC (varchar) | 50K_12_MTHS (varchar) | 100K_12_MTHS (varchar)
1||||
2|Y|Y||
3|Y|Y|Y|
4|Y|||
对于我尝试获取的able样本的输出:
1|
2|Proc, 50
3|Proc, 50, 100
4|Proc
我认为这样做的方法是使用一个案例(见下文),但无法使其发挥作用
SELECT
MEMBER_ID,
Gorup =
Select(
CASE PROC
WHEN 'Y'
THEN 'Proc'
END + ', ' +
CASE 50K_12_MTHS
WHEN 'Y'
THEN '50K'
END-- + ', ' +
CASE 100K_12_MTHS
WHEN 'Y'
THEN '100K'
END + ', ' +)
from Members
差不多
SELECT
MEMBER_ID,
CASE [PROC]
WHEN 'Y' THEN 'Proc, '
ELSE ''
END +
CASE [50K_12_MTHS]
WHEN 'Y' THEN '50K,'
ELSE ''
END +
CASE [100K_12_MTH]
WHEN 'Y' THEN '100K, '
ELSE ''
END as [group]
from Members
试试这个
SELECT
MEMBER_ID,
(CASE [PROC] WHEN 'Y'
THEN 'Proc' ELSE ''
END +
CASE [50K_12_MTHS] WHEN 'Y'
THEN ', 50K' ELSE '' END
+ CASE [100K_12_MTHS] WHEN 'Y'
THEN ', 100K' ELSE ''
END) as [GROUP]
from Members
@Rahul Yours将在开始时生成它们。不管怎样,删除它们都很简单。@podiluska..但要求是这样的..开始时需要逗号..uyou可以看到它above@user1951570..did您从标记为正确的答案中得到了预期的结果…??第一个正确答案成功了。我没有注意到额外的','