SQL-仅当B不存在时才选择A

尼克雷克

我有此SQL语句(已修改,因为实际查询量很大):

select tblInfo.IDNum, tblAddress.PrimaryAddress
from tblInfo
join tblAddress
on tblInfo.Agent = tblAddress.Agent
where (some stuff)

我得到一张看起来大致像这样的表:

|| IDNum || PrimaryAddress ||
-----------------------------
|| 01234 || 1              ||
|| 23456 || 1              ||
|| abcde || 0              ||
|| abcde || 1              ||
|| zyxwv || 0              ||

我需要一种方法来返回所有具有PrimaryAddress为1的记录,以及所有具有PrimaryAddress为0并且没有IDNum已经返回PrimaryAddress为1的IDNum的记录。即在上面的示例中,(abcde || 0)应该被排除,因为(abcde || 1)存在。

蒂姆·施密特(Tim Schmelter)

使用 NOT EXISTS

SELECT tblInfo.IDNum, tblAddress.PrimaryAddress
FROM tblInfo
INNER JOIN tblAddress
    ON tblInfo.Agent = tblAddress.Agent
WHERE tblAddress.PrimaryAddress = 1
OR  ( tblAddress.PrimaryAddress = 0 AND NOT EXISTS
    (
       SELECT 1 FROM tblInfo t2 INNER JOIN tblAddress a2 ON t2.Agent = a2.Agent
       WHERE t2.IDNum = tblInfo.IDNum AND a2.PrimaryAddress = 1
    )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询-插入,但仅当记录不存在时才插入?

来自分类Dev

仅当列中不存在值时才尝试执行SQL命令

来自分类Dev

SQL查询-插入,但仅当记录不存在时才插入?

来自分类Dev

仅当表中不存在该值时才更新SQL列

来自分类Dev

仅当 oracle sql 中不存在值时才插入

来自分类Dev

仅当其他表中不存在数据时,SQL 才从该表中获取数据

来自分类Dev

仅当SQL Server中存在负值时,才选择负值

来自分类Dev

SQL选择-包含不存在的行?

来自分类Dev

SQL选择并插入(如果不存在)

来自分类Dev

不存在时的SQL查询

来自分类Dev

SQL SELECT - 仅当存在另一条记录时才选择

来自分类Dev

不存在的SQL

来自分类Dev

不存在时的SQL插入其中数据集来自选择查询

来自分类Dev

仅当表 B 中不存在特定值时才从表 A 中获取值

来自分类Dev

仅当不存在较新的记录时才选择一条记录

来自分类Dev

SQL查询改进-仅当A> B(其中A和B值在变量的范围范围内)时才选择X

来自分类Dev

SQL Server 2008-选择不存在的位置

来自分类Dev

仅当值不存在时才返回行

来自分类Dev

仅当记录不存在时才插入表

来自分类Dev

SQL中不存在时如何使用

来自分类Dev

不存在CASE时,SQL计数返回0

来自分类Dev

当SQL视图不存在时C#中断

来自分类Dev

SQL(不存在的命令)

来自分类Dev

SQL-不存在

来自分类Dev

不存在SQL查询

来自分类Dev

SQL-不存在

来自分类Dev

SQL表不存在

来自分类Dev

SQL不存在查询

来自分类Dev

SQL(不存在的命令)