• 締切済み

文字列の切り出し

一応確認はしましたが、過去に似たような質問があったらすみませんが どうか教えて下さい。 今までOracleでコーディングしたことはありますが、postgresは初心者です。 文字列を右から切り出す関数はないでしょうか? 例えば、文字列「TEST」の末尾2文字を取りたいとき OracleのSQLで言えば substr( 'TEST', -2 ) ⇒ 'ST' が取れますが postgresではこういう風に使えないようです。 substr 以外の関数や、代わりにこうやる方法があるよと言ったことを教えて下さい。 お願い致します。

みんなの回答

  • yamada59
  • ベストアンサー率74% (29/39)
回答No.2

関数を定義してあげれば書くのが楽になるかもしれません。 CREATE OR REPLACE FUNCTION my_substr(text, integer) RETURNS text AS ' SELECT CASE WHEN $2 >= 0 THEN substr($1, $2) ELSE substr($1, length($1) + $2 + 1) END ' LANGUAGE sql IMMUTABLE STRICT; SELECT my_substr('test', 2); my_substr ----------- est (1 row) SELECT my_substr('test', -2); my_substr ----------- st (1 row) Oracle の substr 関数の動作を把握していないので、必要であれば修正するようにしてください。

回答No.1

substr('TEST',length('TEST')-1) って書くしか…。

milkhiyo
質問者

お礼

早速の回答ありがとうございます! ネットで調べててもないので、面倒な方法をするしかないのかなーとは思ってたんですけど もしあったら・・・と思ったので質問してみました。 どうもありがとうございました。。

関連するQ&A