1

也许对于一个每天都在使用数据库的人来说这很简单,但是我需要编写 sql 查询。我有相同设计的字段(85500 项),例如“200 00 2334”、“200 00 2555”(它是 varchar 数据),它是客户代码。我需要将所有这些字段更改为例如“200-00 2334”、“200-00 2555”。字段中的第一个空格必须替换为“-”,第二个空格必须保持不变。我的数据库是 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

假设它始终是第 4 个字符,您可以使用overlay

select overlay('200 00 12132' placing '-' from 4 for 1);
--------------------------------------------------------
OVERLAY
200-00 12132
于 2012-06-15T09:57:28.043 回答
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 回答