我正在寻找一种解决方案来检查数组中是否存在值,因此我需要根据这些值切换列。
这是表结构
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
-------------------------
由于
答案 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