0

これは特定の問題です。

データを含むExcelシートがあります。同様のデータがリレーショナル データベース テーブルに存在します。一部の行が存在しないか、追加の行が存在する可能性があります。目標は、Excel シートのデータを表のデータと照合することです。

次のクエリがあります

  Select        e_no, start_dt,end_dt
  From         MY_TABLE
  Where        e_no In 
  (20231, 457) 

この場合、e_no 457 はデータベースに存在しません (したがって返されません)。しかし、クエリが存在しない場合でも行を返すようにしたい (457 、 null 、 null )。それ、どうやったら出来るの ?

4

3 に答える 3

3

For Sql-Server: 一時テーブルまたはテーブル型変数を使用し、それと左結合MY_TABLEします

Sql-Server フィドルのデモ

Declare @Temp Table (e_no int)

Insert into @Temp
Values (20231), (457) 

Select   t.e_no, m.start_dt, m.end_dt
From     @temp t left join MY_TABLE m on t.e_no = m.e_no

渡す値が csv リストの場合は、split 関数を使用して @Temp に挿入された値を取得します。

于 2013-03-19T16:49:00.820 に答える
0

あなたはまた、この方法でそれを行うことができますUNION

Select
     e_no, start_dt ,end_dt
From         MY_TABLE
Where e_no In (20231, 457) 

UNION

Select 457, null, null
于 2013-03-19T17:11:28.727 に答える