ホーム > SQL Server, データベース > 第1回 Microsoft SQL Server Select文で 条件分岐 CASEを使う

第1回 Microsoft SQL Server Select文で 条件分岐 CASEを使う

2009 年 3 月 15 日

SNAG-0013

ATable、BTableの2つのテーブルがあり

BTableにはATableレコードに対する画像ファイルのパスが格納されているとします。

ATableとBTableを結合して、結果を出す場合

Select Distinct * 
From ATable LEFT OUTER JOIN BTable ON ATable.ATable_id = BTable.BTableID 

このようにDistinctをかけても、BTableのファイルパスはひとつひとつ違うわけですから、ATableの関連画像ファイルパスをBTableに複数入力していた場合は、重複レコードをさけることはできません。

このように、BTableにATableの関連ファイルが存在するかどうかをレコードに含めつつ結果レコードの重複を避けるような場合に有効です。

Select Distinct 
CASE 
WHEN BTable.BTable_filename IS NULL THEN NULL 
ELSE '1' END AS BTable_filename 
From ATable LEFT OUTER JOIN BTable ON ATable.ATable_id = BTable.BTable_id

関連ファイルが存在しないときは、”NULL”が存在するときは”1”がはいります。

このため、重複レコードが発生しても、関連ファイル情報には、”1”が結果セットとして出力されるため同一レコードはDistinctにより重複レコードとして結果セットからはずされます。

関連するエントリー

    None Found

SQL Server, データベース ,

  1. コメントはまだありません。
  1. トラックバックはまだありません。