1
我有一個表,例如,有ID
和Name
。選擇DISTINCT,其中不爲空的MySQL
有多行包含空白名稱,但也可以有多行具有相同名稱。我想選擇所有ID
s,只計算一次每個名稱(DISTINCT
),但選擇所有空白。
以下查詢自然只會選擇一個空白名稱。 如何選擇所有不同的名稱加上所有的空白名稱?
SELECT DISTINCT Name, ID
FROM TestTable
我有一個表,例如,有ID
和Name
。選擇DISTINCT,其中不爲空的MySQL
有多行包含空白名稱,但也可以有多行具有相同名稱。我想選擇所有ID
s,只計算一次每個名稱(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 = ''
你能解釋一下'<>'?我可以理解,但希望看到一個書面解釋=) –
@John在許多編程語言中,不等於',與'!='相同 –
是兩個查詢的聯合是實現此目的的唯一方法嗎? –