也许对于一个每天都在使用数据库的人来说这很简单,但是我需要编写 sql 查询。我有相同设计的字段(85500 项),例如“200 00 2334”、“200 00 2555”(它是 varchar 数据),它是客户代码。我需要将所有这些字段更改为例如“200-00 2334”、“200-00 2555”。字段中的第一个空格必须替换为“-”,第二个空格必须保持不变。我的数据库是 PostgreSQL。我只需要一个查询。
非常感谢您的帮助!
也许对于一个每天都在使用数据库的人来说这很简单,但是我需要编写 sql 查询。我有相同设计的字段(85500 项),例如“200 00 2334”、“200 00 2555”(它是 varchar 数据),它是客户代码。我需要将所有这些字段更改为例如“200-00 2334”、“200-00 2555”。字段中的第一个空格必须替换为“-”,第二个空格必须保持不变。我的数据库是 PostgreSQL。我只需要一个查询。
非常感谢您的帮助!
regexp_replace() 可能会通过简单的模式匹配来完成这项工作,因为它只会匹配第一个空格。
SELECT regexp_replace('100 200 300', ' ', '-');
regexp_replace
----------------
100-200 300
假设它始终是第 4 个字符,您可以使用overlay:
select overlay('200 00 12132' placing '-' from 4 for 1);
--------------------------------------------------------
OVERLAY
200-00 12132
select code[1]||'-'||code[2]||' '||code[3] from
(select regexp_split_to_array('200 00 2334', E'\\s+') as code) t
如果代码的第一部分具有不同数量的字符,这会使您更加灵活