0

我正在尝试将多个列(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|||

对于我想要得到的能样本的输出:

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
4

2 回答 2

0

几乎...!

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
于 2013-10-16T07:21:10.490 回答
0

尝试这个

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
于 2013-10-16T07:24:30.207 回答