【发布时间】:2016-01-27 17:26:36
【问题描述】:
我有这个 TSQL:
SELECT Invd.Unit, M.MemberName, Invd.Description
FROM InvoiceDetail Invd
LEFT JOIN Members M on Invd.MemberNo = M.MemberNo
GROUP BY Invd.Unit, M.MemberName, Invd.Description
...这适用于 90% 的返回内容(除了非常缓慢),但大约 10% 的返回记录包含 Invd.Unit 或 M.MemberName 或两者的 Null 值。
我只想要任何地方都没有 Null 的记录。我需要做些什么来防止结果集中返回具有任何空值的记录?
我不想使用这样的东西:
SELECT IsNull(Invd.Unit, 'no Unit'), IsNull(M.MemberName, 'no Member Name'), Invd.Description
. . .
我根本不想要那些记录;我只想要这三个字段的唯一/不同组合(不包括其中任何一个字段中的空值 - 数据仅在所有三个值都存在的情况下才有用)。
【问题讨论】:
-
如果您实际上没有计算聚合值,那么
DISTINCT会比GROUP BY,IMO 更清晰。 -
不,没有进行计算;只是这三个字段的唯一组合的列表。
标签: sql sql-server tsql null isnull