2017-09-11 4 views
0

に先行ゼロとハイフンを除去:Iは、例えば、PostgreSQLデータベース内の列の値から先行ゼロとハイフンを削除する必要はPostgres

121-323-025-000は12132325 060579から0001 =ように見えるべきです> 605791 482-322-004 => 4823224

タイムリーなヘルプは本当に感謝しています。

+0

ロジックが矛盾しています。場合によってはすべての内部ゼロを削除することがあります。 –

答えて

0

Postgresql string functions. 高度な文字列編集の場合、正規表現は非常に強力です。複雑な正規表現は、それらに精通していない人がメンテナンス可能であるとは考えられないかもしれません。私たちは、文字列の先頭やマッチングを開始する場所のためのハイフンを探してこの場合

CREATE TABLE testdata (id text, expected text); 
INSERT INTO testdata (id, expected) VALUES 
    ('121-323-025-000', '12132325'), 
    ('060579-0001', '605791'), 
    ('482-322-004', '4823224'); 
SELECT id, expected, regexp_replace(id, '(^|-)0*', '', 'g') AS computed 
    FROM testdata; 

How regexp_replace works.。試合の一環としてそれに続くゼロが含まれています。次に、その一致を空の文字列に置き換えます。最後に、グローバルフラグは、文字列の最後に達するまで検索を繰り返すように指示します。

+0

これは私が探していたものです。ご協力いただきありがとうございます。 –

関連する問題