2012-05-10 33 views
1

私は、例えばIDNameのテーブルを持っています。DISTINCTを選択してください。

空白の名前を含む複数の行がありますが、同じ名前の行が複数存在することもあります。 IDをすべて選択し、各名前を1回だけカウントし(DISTINCT)、すべてのブランクを選択します。

次のクエリでは当然1つの空白の名前のみが選択されます。 すべての別名とすべての空白の名前を選択するにはどうすればよいですか?私は考えることができる

SELECT DISTINCT Name, ID 
FROM TestTable 

答えて

6
SELECT DISTINCT Name, ID FROM TestTable where Name <> '' 
union all 
SELECT Name, ID FROM TestTable where Name = '' 
+0

あなたは '<>'を説明できますか?私はそれを理解することができますが、書かれた説明=を見たいと思っています) –

+1

@John '等しくない '、多くのプログラミング言語で'!= 'と同じ –

+0

これを達成するために2つのクエリの和集合は唯一の方法ですか? –

1

のみ若干の改善は次のようになります。

SELECT DISTINCT Name, ID FROM TestTable where Name <> '' 
union all 
SELECT '', ID FROM TestTable where Name IS NULL OR Name = '' 
関連する問題