如何检查整数数组中存在的值 - SQL case语句

时间:2014-11-10 10:59:20

标签: sql sql-server

我正在寻找一种解决方案来检查数组中是否存在值,因此我需要根据这些值切换列。

这是表结构

ID    Name
-------------------
1     Alex
2     John
3     Joel
4     Philip
5     Susan
6     Tim
7     Jerry
-------------------------

所以条件是我需要所有行但是会有第三列,它将基于存在逻辑。如果ID存在于(1,5,7)中,则第三列为T,否则该列将为W.所以结果将是这样的

ID    Name      status
-------------------
1     Alex      T
2     John      W
3     Joel      W
4     Philip    W
5     Susan     T
6     Tim       W
7     Jerry     T
-------------------------

由于

2 个答案:

答案 0 :(得分:1)

select *, case when id in (1,5,7) 
               then 'T'
               else 'W'
          end as status
from your_table

答案 1 :(得分:0)

此查询会有所帮助。

 DECLARE @Test Table
(
    Id Integer,
    Name VARCHAR(10)
)

INSERT INTO @Test 

SELECT 1,   'AAA'    UNION ALL
SELECT 2,   'BBB'   UNION ALL
SELECT 3,  'CCC'    UNION ALL
SELECT 4,  'DDD'    UNION ALL
SELECT 5,  'EEEE'    UNION ALL
SELECT 6,   'FFFF'    UNION ALL
SELECT 7,  'RRRR' 

select *, CASE WHEN Id iN (1,5,7) 
            THEN 'T' 
            ELSE 'D' 
          END AS STATUS 
FROM @Test