アプリ版:「スタンプのみでお礼する」機能のリリースについて

一応確認はしましたが、過去に似たような質問があったらすみませんが
どうか教えて下さい。

今までOracleでコーディングしたことはありますが、postgresは初心者です。
文字列を右から切り出す関数はないでしょうか?

例えば、文字列「TEST」の末尾2文字を取りたいとき
OracleのSQLで言えば
substr( 'TEST', -2 ) ⇒ 'ST' が取れますが
postgresではこういう風に使えないようです。
substr 以外の関数や、代わりにこうやる方法があるよと言ったことを教えて下さい。
お願い致します。

A 回答 (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 関数の動作を把握していないので、必要であれば修正するようにしてください。
    • good
    • 0

substr('TEST',length('TEST')-1)


って書くしか…。
    • good
    • 1
この回答へのお礼

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

お礼日時:2010/03/19 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!