2012-06-15 78 views
1

也許對於每天都在使用數據庫的人來說非常簡單,但我需要編寫sql查詢。我有字段(85500項),它們在 相同的設計中,例如'200 00 2334','200 00 2555'(它是varchar數據), 這是客戶代碼。我需要將所有這些字段更改爲例如 '200-00 2334','200-00 2555'。第一空間必須替換爲' - ' 第二空間必須保持不變。 我的數據庫是PostgreSQL。我只需要一個查詢。SQL替換查詢

非常感謝您的幫助!

回答

2

由於它只會匹配第一個空格,所以regexp_replace()會用一個簡單的模式匹配來完成這項工作。

SELECT regexp_replace('100 200 300', ' ', '-'); 
regexp_replace 
---------------- 
100-200 300 
+0

這我想要的是。我使用了查詢:更新konta_wirtualne set kw_kod_kontrahenta = regexp_replace(kw_kod_kontrahenta,'',' - ') – BKl

+0

非常感謝您的幫助! – BKl

1

假設它總是第4個字符,你可以使用overlay

select overlay('200 00 12132' placing '-' from 4 for 1); 
-------------------------------------------------------- 
OVERLAY 
200-00 12132 
1
select code[1]||'-'||code[2]||' '||code[3] from 
(select regexp_split_to_array('200 00 2334', E'\\s+') as code) t 

這樣可以使你更加靈活,如果代碼的第一部分具有不同量charaters的