Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS sql在select中合并列_Sql_Sql Server - Fatal编程技术网

MS sql在select中合并列

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 我认为这样做的方法是使用一个案例

我正在尝试将多个列(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
我认为这样做的方法是使用一个案例(见下文),但无法使其发挥作用

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您从标记为正确的答案中得到了预期的结果…??第一个正确答案成功了。我没有注意到额外的','