使用单个语句查询多个列

时间:2017-03-08 04:47:56

标签: sql sql-server tsql case

我有一个带有透视代码值的表,Code1,Code2等,直到Code100。 我有一组值(1,2,3,4,5,6),我需要比较每个代码。是否可以扫描一组特定值的列而不必写出大量的case语句?

CASE WHEN Code1 IN (1,2,3,4,5,6) THEN 'yes'
     WHEN Code2 IN (1,2,3,4,5,6) THEN 'yes'
     WHEN Code3 IN (1,2,3,4,5,6) THEN 'yes'
     etc

1 个答案:

答案 0 :(得分:-1)

你可以pivot the table first

然后通过将这些列转换为行来处理每个记录,在另一个选择中。

如果做得好,这只需要一个陈述。

价值IN(1,2,3,4,5,6)时的情况那么'是'

:更新

您也可以尝试a lookup table and a JOIN。如果你的全部都没有支柱。