我的表格中包含以下列:
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 '
...
有没有更好的方法来实现这一目标?请注意,我无法更改表格。它的格式可能非常糟糕。
答案 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
根据您使用的数据库系统/语言,可能需要进行一些调整。