【Oracle】DUAL(ダミーテーブル)と既存テーブルを結合する

dual-summne
スポンサーリンク

どうも、あおです。

 

 

Oracleで固定値をセットしたダミーテーブルのDUALと

既存テーブルを結合しようとしたのですが、普通にJOINしてもできない。。

色々やっていて、下記の方法でできたのでメモ。

 

 

 

まず、既存テーブルがこちら

dual-1

 

 

 

 

 

 

 

IDがA1とA3のレコードが存在しないけれど、レコードとしては表示したい。

(IDは表示して、他のカラムはNULLといった風に)

 

 

 

Oracleに標準で用意されているDUALを使って以下のようにした。

 

SELECT 
  W1.COL
 ,TD.SEINAME
 ,TD.MEINAME
 ,TD.SHOZOKU
 ,TD.BUSHO
FROM
(SELECT
        CASE ROWNUM
            WHEN 1 THEN 'A1'
            WHEN 2 THEN 'A2'
            WHEN 3 THEN 'A3'
            WHEN 4 THEN 'A4'
            WHEN 5 THEN 'A5'            
        END AS COL
    FROM DUAL 
        CONNECT BY ROWNUM <= 5) W1
 LEFT JOIN TBL_ID TD
 ON W1.COL = TD.ID
 ORDER BY W1.COL

 

 

結果

dual-2

 

 

 

 

 

 

 

もっといい方法がありそうだけど、とりあえずいけたのでよしとする。