MySQLの構文のエラーについて
私の質問を見て頂きましてありがとうございます。
以下のような取得結果のSQLを作りたいのですが、構文エラーが出ており困っております。
エイリアスをつけなくてはならない?ようだったので全ての副問い合わせにエイリアスを付けてみたりしたのですが、エラーがとれませんでした。
--元テーブルのデータ
key name
------------------------------
1 AA,AAA,BBB,BBBB,ZZZZZ
2 CCC,DDD,EE,FFFF
--期待するSQL実行結果
COL1 COL2
-------------
AA 1
AAA 1
BBB 1
BBBB 1
CCC 2
DDD 2
EE 2
FFFF 2
ZZZZZ 1
SELECT
col1,
col2
FROM(
SELECT
col1,
col2,
(SELECT @i:=@i+1 FROM (select @i:=0)) AS rnk
FROM(
SELECT
SUBSTR( name,
CASE rn WHEN 1 then 1
ELSE INSTR(name, delm, 1, rn - 1) + 1
end
,CASE rn WHEN 1 THEN
CASE INSTR(name, delm, 1, rn) WHEN 0 THEN LENGTH(name)
ELSE INSTR(name, delm,1,rn)-1
end
WHEN IFNULL(LENGTH(translate(name, delm || name, delm)), 0) + 1 then LENGTH(name)
ELSE INSTR(name,delm,1,rn)-1-instr(name,delm,1,rn-1)
end
) AS col1,
key AS col2
FROM
T_TEST_4,
(SELECT ',' AS delm FROM dual) AS b,
(SELECT rownum AS rn FROM all_catalog) AS c
WHERE
rn <= IFNULL(LENGTH(REPLACE(name,delm || name, delm)),0) + 1
)
)
WHERE rnk = 1
ORDER BY col1;
以上、回答をご存じの方、ご回答を宜しくお願い致します。