0

「07960/WR」、「27163/WR」などの列に値があります。そこからすべての数字を選択する必要があります。だから私はSQLを作成しました:

次の数値として CAST (regexp_replace(object_index, '\D', '', 'g') as integer) を選択 ...

それは問題ありませんが、誰かが [数字] / <- スラッシュ / を入力すると .... 例: "99/27163/WR"

クエリが機能しません。

値の最後の 5 桁のみに regexp_replace を使用するには?

4

1 に答える 1

1

私は PostgreSQL を知りませんが、RegexBuddy の助けを借りて、うまくいくと思われるものをつなぎ合わせました。

select CAST (REGEXP_REPLACE(object_index, $$(?p)^.*(\d{5})\D*$$$, $$\1$$, 'g') as integer) as number from ...

この正規表現の考え方は\d{5}、文字列の最後の 5 桁 (つまり、数字以外の : のみが続くもの) を照合してキャプチャし、\D*$その周囲のすべてを削除することです。

于 2012-05-09T08:35:10.647 に答える