- 締切済み
文字列の切り出し
一応確認はしましたが、過去に似たような質問があったらすみませんが どうか教えて下さい。 今までOracleでコーディングしたことはありますが、postgresは初心者です。 文字列を右から切り出す関数はないでしょうか? 例えば、文字列「TEST」の末尾2文字を取りたいとき OracleのSQLで言えば substr( 'TEST', -2 ) ⇒ 'ST' が取れますが postgresではこういう風に使えないようです。 substr 以外の関数や、代わりにこうやる方法があるよと言ったことを教えて下さい。 お願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 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 関数の動作を把握していないので、必要であれば修正するようにしてください。
- chie65536(@chie65535)
- ベストアンサー率44% (8757/19871)
回答No.1
substr('TEST',length('TEST')-1) って書くしか…。
お礼
早速の回答ありがとうございます! ネットで調べててもないので、面倒な方法をするしかないのかなーとは思ってたんですけど もしあったら・・・と思ったので質問してみました。 どうもありがとうございました。。