我有一个名为person的表名。
E.g:
Name Address
-------------------------------------
a India
b US
c UK
我想检查特定名称是否存在。如果不存在,我想表示为“不”,
E.g:
我在下面尝试查询以获得结果。但是' D' D'找不到桌子。所以,我得到的值是空的。
select Name, case when Name in ('a','d','e') Then 'Yes' Else 'No' END As Status from person
Name Status
------------------------------
a Yes
我需要输出如下格式:
Name Status
-------------------------------------
a Yes
b Yes
c Yes
d No
e No
你能帮我吗?如何解决这个问题?
答案 0 :(得分:1)
请使用以下代码:
DECLARE @Table TABLE (Name NVARCHAR(20), Country NVARCHAR(20))
INSERT INTO @Table VALUES
('a','India'),
('b','US'),
('c','UK')
创建一个表变量来存储您需要检查的名称字段:
DECLARE @Temp TABLE (Name NVARCHAR(20))
INSERT INTO @Temp VALUES
('a'),
('d'),
('e')
SELECT
CASE WHEN T.Name IS NULL THEN TE.Name ELSE T.Name END AS Name,
CASE WHEN T.Name IS NULL THEN 'NO' ELSE 'YES' END AS Staus
FROM @Table T FULL JOIN @Temp TE
ON T.Name =TE.Name
输出:
Name Staus
a YES
b YES
c YES
d NO
e NO