我有两个表考虑tbl1和tbl2
tbl1
Site
---------
101 - Hold
102 - test
tbl2
Site
---------
101 - Hold
104 - wel
102 - test
我想检查tbl1中是否存在tbl2数据。如果是,则select语句必须返回“Yes”,否则返回“No”...
EXample
If tbl2 is not having "102-test" then also i have to return 'No'
我怎样才能做到这一点。
答案 0 :(得分:0)
您可以通过查找不匹配并使用以下信息来执行此操作:
select (case when count(*) = 0 then 'Yes' else 'No' end)
from tbl2 t2
where not exists (select 1 from tbl1 where t1.site = t2.site);
count(*)
保证只返回一行,包含yes
或no
。
答案 1 :(得分:0)
SELECT
CASE EXISTS( SELECT Id FROM tbl2 WHERE Id IN (SELECT Id FROM tbl1))
THEN 'Yes'
ELSE 'No'
END
答案 2 :(得分:0)
检查tbl2
中是否存在tbl1
数据,并在site
存在Yes
时返回No
值为tbl2
或tbl1
的{{1}} {1}}或不。{/ p>
无需使用任何汇总,并且您拥有所有tbl1
网站的信息 - 这是您想要达到的目标(根据您的问题)。
SELECT
a.site, CASE WHEN b.site IS NOT NULL THEN 'Yes' ELSE 'No END AS value_exists
FROM
tbl1 a
LEFT JOIN tbl2 b ON
a.site = b.site
如果您在tbl1
中有重复值,则可能需要考虑添加DISTINCT
或GROUP BY
子句。