SQL Server:将临时表中的所有列行设置为0或1
我有两个表SQL Server:将临时表中的所有列行设置为0或1,sql,sql-server,Sql,Sql Server,我有两个表表1和表2 两个表都包含250列,每个列都有一个ID代码,该代码允许两个表进行多对多的连接。除ID代码外,每个列行都有一个范围为0-500的值 我需要做一些进一步的分析,并希望能够生成一个临时表或查询输出,其中,对于每一列的每一行,值设置为0或1,其中1是按id排序的列的总和code>=1 我可以在使用case时这样做,但是对于500列,我想知道是否有更聪明的方法来做到这一点。如果有帮助,每个表中的所有列都以字“\u bin”结尾。您尚未指定SQL server版本,从SQL 2012
表1
和表2
两个表都包含250列,每个列都有一个ID
代码,该代码允许两个表进行多对多的连接。除ID代码外,每个列行都有一个范围为0-500的值
我需要做一些进一步的分析,并希望能够生成一个临时表或查询输出,其中,对于每一列的每一行,值设置为0或1,其中1是按id排序的列的总和code>=1
我可以在使用case时这样做,但是对于500列,我想知道是否有更聪明的方法来做到这一点。如果有帮助,每个表中的所有列都以
字“\u bin”
结尾。您尚未指定SQL server版本,从SQL 2012开始,您也可以使用IIF或为此选择逻辑函数,而不是“case-when”,但仍然需要对所有列执行此操作
详情如下:
如果值从不为负,则可以使用
sign()
而不是case
表达式。可以通过对db元数据的查询来构建所需的查询(250个类似的表达式)。如果您创建一个小样本(比如3或4列)并选择@johncapelletti所说的结果,如果你能给我们看一些样品数据,那会有帮助的。