1

データベースを毎日使っている人には簡単かもしれませんが、SQLクエリを書く必要があります。「200 00 2334」、「200 00 2555」(varchar データ) など、同じデザインのフィールド (85500 アイテム) があります。これは顧客のコードです。このフィールドをすべて「200-00 2334」、「200-00 2555」などに変更する必要があります。フィールドの最初のスペースは「-」に置き換える必要があり、2 番目のスペースはそのままにしておく必要があります。私のデータベースは PostgreSQL です。クエリだけが必要です。

助けてくれてありがとう!

4

3 に答える 3

2

偶然にも、regexp_replace() は最初のスペースのみに一致するため、単純なパターン一致でジョブを実行します。

SELECT regexp_replace('100 200 300', ' ', '-');
 regexp_replace 
----------------
 100-200 300
于 2012-06-15T09:55:50.297 に答える
1
select code[1]||'-'||code[2]||' '||code[3] from
 (select regexp_split_to_array('200 00 2334', E'\\s+') as code) t

これにより、コードの最初の部分の文字数が異なる場合でも、柔軟性が高まります。

于 2012-06-15T09:59:01.013 に答える
1

常に 4 番目の文字であると仮定すると、 overlayを使用できます。

select overlay('200 00 12132' placing '-' from 4 for 1);
--------------------------------------------------------
OVERLAY
200-00 12132
于 2012-06-15T09:57:28.043 に答える