查询SQL Server

时间:2016-01-30 07:53:05

标签: 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

现在我想根据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列更多或更多名称(不像Item-X)。

我需要查询来执行此操作。任何人都可以建议在SQL服务器中执行此操作的最佳方法吗?或者至少指出我正确的资源。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用case语句来执行此操作,如下所示:

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

答案 1 :(得分:1)

由于您需要检查更多列,因此可以撤消IN运算符

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

现在,您可以轻松列出IN opertaor

中的列