在SQL Server中查询列数据

在SQL Server中查询列数据,sql,sql-server,multiple-columns,bigdata,Sql,Sql Server,Multiple Columns,Bigdata,我有一个如下所示的表格结构 CustimerId Name Store Bill Item1 Item2 Item3 1 A StoreA 100 Y 2 A StoreB 200 N Y 3 B StoreA 300 N 4 C StoreC 400 Y N Y 现在我想根

我有一个如下所示的表格结构

CustimerId  Name Store    Bill  Item1  Item2  Item3

1           A    StoreA   100           Y
2           A    StoreB   200    N              Y
3           B    StoreA   300    N
4           C    StoreC   400    Y      N       Y
现在我想根据列Item1、Item2、Item3中的值创建一列,如下所示

CustimerId  Name Store    Bill  BoughtAnySpecialItem

1           A    StoreA   100    Y
2           A    StoreB   200    Y
3           B    StoreA   300    N
4           C    StoreC   400    Y
这意味着,如果从Item1到Item3的列中的任何值为“Y”,我希望将其设置为“Y”,否则为“N”。项目列的名称不同(与Item-X不同)


我需要查询来执行此操作。有人能建议在SQL server中实现这一点的最佳方法吗?或者至少给我指出正确的资源。提前感谢。

您可以使用
case
语句来完成此操作,类似于以下内容:

case when Item1 = 'Y' or Item2 = 'Y' or Item3 = 'Y' then 'Y' else 'N' end

由于要检查的列较多,因此可以在运算符中反转

 SELECT *,
        CASE WHEN 'Y' in (Item1 , Item2 , Item3) THEN 'Y' ELSE 'N' END as BoughtAnySpecialItem
 FROM Yourtable

现在,您可以轻松地在
中的
操作中列出该列,但我的列更多。有200个这样的栏目。有迭代方法吗?没有,您可以构建与动态SQL相同的东西,但仍然需要列出要检查的列。