オラクルの文法をMySQLにて記述したい
私の質問内容を見て頂きありがとうございます。
もう1件の質問内容のある程度のところまで詰めることができたのですが
1点困っていることがあり、またネット上でも理解できる内容が見つからなかったためこちらに質問させて頂きます。
オラクルにて
--元テーブル
CREATE TABLE T_TEST_4 (
KEY VARCHAR2(8),
NAME VARCHAR2(255)
)
--元テーブルのデータ
KEY NAME
------------------------------
1 AA,AAA,BBB,BBBB,ZZZZZ
2 CCC,DDD,EE,FFFF
--SQL
/* SplitSQL */
select
col1,
col2
from(
select
col1,
col2,
row_number() over (partition by col1 order by col2 desc) 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 nvl(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
) col1,
key col2
from
T_TEST_4,
(select ',' delm from dual) b,
(select rownum rn from all_catalog) c
where
rn <= nvl(length(translate(name,delm || name, delm)),0) + 1
)
)
where rnk = 1
order by col1;
--SQL実行結果
COL1 COL2
-------------
AA 1
AAA 1
BBB 1
BBBB 1
CCC 2
DDD 2
EE 2
FFFF 2
ZZZZZ 1
上記の場合
row_number() over (partition by col1 order by col2 desc) rnk
の行はMySQLでどのように記述したら良いのでしょうか?
皆様お忙しい中、もし知っている方がいらっしゃいましたらご回答を宜しくお願い致します。
お礼
回答、ありがとうございます。 やはりそうでしたか。 SQLも検討しましたが、思ったことが出来そうにないので、 この方法は諦めていました。 初心者の私にはマクロ作成するのは敷居が高そうなので、 Trac では存在しないページをクリックした時には、 テンプレートのフォルダーからテンプレートをメニューから選択し、 コピーすると思いますので、そのときに文字列変換できないか、 検討してみます。 ありがとうございました。
補足
その後、試行錯誤して、 sed で、template内の MS_NAME を実際のマイルストーン名に変換し、 そのファイルを、trac-admin で、import して、 不本意な方法ですが、一応目的は達しました。 ありがとうございました。