SQL将列组合成一个字符串

时间:2009-10-01 18:23:16

标签: sql sql-server-2000

我的表格中包含以下列:

id,t1,t2,t3,t4

所有类型都是bit (还有其他专栏,但我只展示相关专栏)

现在,我需要根据ID获取以下字符串

t1 t2 t3 t4

我想到的最好的就是:

declare @t1 bit, @t2 bit...
Select @t1 = t1, @t2 = t2 from t where id = 1

declare @theString
set @theString = ''

if @t1 = 1
  set @theString = @theString + 't1 '

if @t2 = 1
  set @theString = @theString + 't2 '

...

有没有更好的方法来实现这一目标?请注意,我无法更改表格。它的格式可能非常糟糕。

1 个答案:

答案 0 :(得分:0)

我认为这样做会:

DECLARE @theString varchar(100)

SELECT @theString = case t1 when 1 then 't1 ' else '' end
                  + case t2 when 1 then 't2 ' else '' end
                  + case t3 when 1 then 't3 ' else '' end
                  + case t4 when 1 then 't4 ' else '' end
 from t
 where id = 1

根据您使用的数据库系统/语言,可能需要进行一些调整。