2013年3月27日水曜日

ダミーデータを作るSQL

OracleでDual表からダミー仮想表を作るSQLのサンプル


1. 面倒だけど柔軟なデータ
SELECT 'A' as KEYS , 100 as SUBKEY , 50 as VALUE from dual 
union all 
SELECT 'A' as KEYS , 200 as SUBKEY , 60 as VALUE from dual 
union all
...
--※SELECT...をコピペしまくる
結果:
KEYSSUBKEYVALUE
A10050
A20060


2. 連番が欲しい
select level as seq
from dual connect by level <= 3
--※level <= 3を適宜書き換え
結果:
SEQ
1
2
3


3. 連番じゃないけど順序性がありそげなデータが欲しい(CSVを列に変換)
select regexp_substr(txt, '[^,]+', 1, level) keys
from (select 'A,B,C' as txt
 from dual) connect by level <= 
 length(regexp_replace(txt, '[^,]')) + 1
--※'A,B,C'を適宜書き換え
結果:
SEQ
A
B
C


これらの組み合わせ(結合)で、とりあえず必要なデータパターンはだいたい網羅できると思う。

0 件のコメント: