sql - 循环遍历列 SQL

标签 sql sql-server csv loops

我正在寻找一种循环遍历表的列以生成输出的方法,如下所述。

表格看起来像这样:

ID  Name     OPTION1 OPTION2 OPTION3 OPTION4 OPTION5
1   MyName1  1       0       1       1       0
2   MyName2  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。优点是代码可能会做你想要的事情,而且非常简单。

关于sql - 循环遍历列 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697367/

相关文章:

mysql - 如何将 NULL 视为最小值?

sql - 如何在 SQL Server 中使用 JOIN 执行 UPDATE 语句?

sql - ADO Connection.Execute 不断返回关闭的记录集

c# - 出于性能考虑更新 N 行

bash - bash中的xpath解析表

ruby - 如何在 ruby​​ 中读取带有奇怪引用的 CSV?

mysql - 间接路由的 GTFS SQL 查询

mysql - 如何使用节点名称和特定属性值从 xml 文件中选择特定节点?

sql-server - SQL Server 索引 View 列精度

json - roboMongo 导出到 csv 输出显示 bson