2010-12-08 16 views
1

私は左と一つの解決策は、以下の質問のために参加していますが、私は戻りNULL列はIDがテーブルに存在しない場合

Select * from table1 where Id in (1,2,3,4,5); 

返しますより効率的なクエリのすべての既存の「ID」を探していますテーブルにIdがテーブルに存在しない場合、すべてのIdがnullカラムで返されるようにします。

EX:IDはテーブル

ID Name Designation 
1 John Employee 
2 Nar Manager 
3 **NULL** **NULL** 
4 Esh Executive. 
5 **NULL** **NULL** 
+3

LEFT OUTER JOINより効率的にこれを行う方法はおそらくありません。私は尋ねなければならない。あなたは正確に何をしようとしていますか?おそらく、これはSQLクエリではなくプログラミングに属するものです。そんなに臭い。 :) – Teekin

+1

私たちは何の味わいですか? MySQL? SQLサーバー?オラクル?他に何か...? – rsenna

+0

SQL Serverの味、SQL Server 2005を使用している – Nash

答えて

3
select x.id, y.name, y.designation 
from (
select row_number() OVER(order by id) as id 
from table1 
) x 
left join table1 y 
on x.id = y.id 

に存在していないが結果はこれが働くべき3と5が含まれている必要があります。

+0

私のクエリは常にIDを動的に取得します。 – Nash

関連する問題