• ベストアンサー

SQLでのsplitなどは?

SQLでsubstrなどは使えますが、 splitなどは使えるのでしょうか? 現在 m_784378_0410 m_klds_0411 m_klsdas_0411 m_klsdas_0412 表示したいデータ 0410 0411 0412 というデータを 後ろの日付のみでグループ化したいのですが、 文字のサイズが固定ではないため、一度splitなどで配列に格納したいのですが、やり方がわかりません。 何かよい方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

横レスですけど group by eventid order by eventid のeventidも substrしないと意味ないと思いますが

aiurai54
質問者

お礼

ほんとうですね~!! 助かりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • panick
  • ベストアンサー率40% (26/64)
回答No.2

SQL では split を使えません。 このような場合には length() 関数を使い、文字列の後ろから 4 文字を切り出して日付を求めるのが良いと思います。 substr(文字列, length(文字列) - 3)

aiurai54
質問者

補足

select substr(eventid, length(eventid) - 3) as eventid from DB名 where 1=1 and eventkind=7 and deleteflag=0 and (to_date(term_p,'YYYY-MM-DD') <= to_date(now(),'YYYY-MM-DD')) group by eventid order by eventid desc limit 30; 教えていただいたものを利用して、上記のようなSQL文を作成しましたが、うまく表示されません。 とにかくグループ化ができないようです。 ここでおかしなところがあれば教えてください。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

splitというような関数はありません。 ちょっと面倒ですけど、以下のようにして取り出せると思います。(試してはいませんけど) substr(ltrim(string,'m_'),strpos(ltrim(string,'m_'),'_')+1,4)

aiurai54
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A