我有一张桌子,例如,ID
和Name
。
有多个行包含空白名称,但也可以有多个具有相同名称的行。我想选择所有ID
的,每个名字只计算一次(DISTINCT
),但选择所有的空白。
下面的查询自然只选择一个空白名称。如何选择所有不同的名称以及所有空白名称?
SELECT DISTINCT Name, ID
FROM TestTable
SELECT DISTINCT Name, ID FROM TestTable where Name <> ''
union all
SELECT Name, ID FROM TestTable where Name = ''
我能想到的唯一轻微改进是:
SELECT DISTINCT Name, ID FROM TestTable where Name <> ''
union all
SELECT '', ID FROM TestTable where Name IS NULL OR Name = ''