我正在寻找一种遍历表各列以生成输出的方法,如下所述。
该表如下所示:
ID名称OPTION1 OPTION2 OPTION3 OPTION4 OPTION5
1我的名字1 1 0 1 1 0
2我的名字2 0 0 1 0 0
输出看起来像这样:
MyName1-> OPTION1,OPTION3,OPTION4
MyName2-> OPTION3
任何执行此操作的方向都将不胜感激。否则,我想我将不得不使用游标或临时表...数据库引擎是MSSQL。我在数据库级别进行格式化的原因是将其输出馈送到有限的可编程环境中。
更新:输出可以采用任何形式的字符串或字符串行。
更新:是否可以通过使用@str = @str + ...构建一个字符串来完成此操作?
更新:我更改了输出...这应该更容易。
谢谢!
最佳答案
好吧,在已知列数的情况下,您可以执行以下操作:
SELECT
MyName + " ->"
+ case OPTION1 when 1 then ' OPTION1' else '' end
+ case OPTION2 when 1 then ' OPTION2' else '' end
+ ...
FROM
Table
如果在创建查询时列是未知的-我可能仍会使用一些动态创建的SQL来进行处理。这样做的好处是该代码可能会执行您想要的操作,并且非常简单。