在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相同的东西,但仍然需要列出要检查的列。