我在SQL Server 2008中工作。我有一个查询,我在两个表之间做一个LEFT JOIN查看表A中的哪些行不在表B中。基本查询是:SQL Server:连接条件ON语句的两个表
SELECT
A.a_col,
B.b_col
FROM A
LEFT JOIN B
ON A.some_key = B.another_key
WHERE
B.another_key IS NULL
我需要在任何行从给定查询返回时再次运行相同的查询。但是,如果第二个查询运行,我不希望上述查询中的任何行输出。在第二个实例,我需要如下转化A.some_key一点:
SELECT
A.a_col,
B.b_col
FROM A
LEFT JOIN B
ON '0' + A.some_key = B.another_key
WHERE
B.another_key IS NULL
我需要在一个SQL批处理两个步骤(语句的组)。换句话说,如果有任何行从第一个查询返回,则执行第二个查询,最终结果集仅来自第二个查询,而不是第一个查询。我如何实现这一目标?
如果行返回第一个,但是第二个存在,你想从第二个查询得到数据吗? – HLGEM 2015-02-09 22:08:29
是的。基本上,我试图看看A.some_key是否在表B中。如果在some_key上找不到它,那么我需要查看它是否在'0'+ some_key上找到。 – user3100444 2015-02-09 22:09:59
因此,如果你能够在结果中找到两者,联盟声明是最简单的方法。 – HLGEM 2015-02-09 22:12:13