第1回 Microsoft SQL Server Select文で 条件分岐 CASEを使う
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