SQL - 根据B列中的值从A列中选择

90a*_*yss 1 sql t-sql

假设我有一个包含2列(a,b)的表,其中包含以下值:

 a     b
---   ---
 1     5
 1    NULL 
 2    NULL
 2    NULL
 3    NULL
Run Code Online (Sandbox Code Playgroud)

我想要的输出:

 a
---
 2
 3
Run Code Online (Sandbox Code Playgroud)

我想只选择列a中的那些不同的值,其中每个单独出现的值在列b中都为NULL .因此从我的期望的输出,"1"将不会进来,因为有一个"5"列b即使有一个为"1"的第二发生NULL.

如何使用TSQL查询执行此操作?

Gor*_*off 6

如果我理解正确,您可以使用group byhaving:

select a
from t
group by a
having count(b) = 0;
Run Code Online (Sandbox Code Playgroud)

使用count()列名时,它会计算非NULL值的数量.因此,如果所有值都是NULL,那么该值将为零.