首页 > 解决方案 > 在sql的列中找出不包含特定值的字段

问题描述

我有带有列accountnumbers和的表帐户Transactiontype。一个帐号会有多个transactiontypes. 例如accountnumber12345 将有transactiontypesD,E,CI 想找出没有事务类型 D 的帐号。不管它有 E 或 C 事务类型但如果它没有 D 事务,则只有那些特定的帐号应该是捕获。请告知如何实现这一目标?我试过下面的说法

Select accountnumber from table where transactiontype NOT IN('D')

但这正在挑选具有交易类型 E 和 C 的账户。我只想找到没有 D 交易的账户

标签: sql-serveroperatorswhere-clause

解决方案


我怀疑你想要一个条件HAVING子句:

SELECT accountnumber
FROM dbo.YourTable
GROUP BY accountnumber
HAVING COUNT(CASE transactiontype WHEN 'D' THEN 1 END) = 0;

推荐阅读