【发布时间】:2017-11-24 02:50:58
【问题描述】:
我有一个带有 INNER JOIN 的典型 SQL 语句
SELECT * from t1
INNER JOIN t2 ON t2.a = t1.a
我的要求是,如果连接返回至少 1 行,则结果集应该为空。如果连接返回 0 行,那么我想看看结果。
首先,我想到了使用NOT EXISTS(或LEFT JOIN + IS NULL),但这在我的情况下不起作用,因为如果在另一个表中找不到任何内容,我会返回结果我需要的。如果另一个表中有匹配项,我什么都不想要返回,如果另一个表中没有匹配项,我想返回一些东西。
【问题讨论】:
-
如果连接返回 0 行,那么您要显示哪些结果?不是我的反对意见,但你的问题没有多大意义。
-
你的意思是
left outer join? -
您的问题有点矛盾,但我假设您只想在结果返回 0 行时做某事? 1. 声明一个变量(例如 joinRowCount) 2. 将 select 的计数放在变量中 3. 如果你的变量 = 0 --> do stuff Else --> don't do stuff 这是你想要的吗?
标签: sql tsql join not-exists