在PostgreSQL中将地址字段拆分为两行

问题描述 投票:0回答:1

我想将地址输入参数字段分成两行;在一行中,只有160个字符(最大值),并且它将从最接近第160个字符的任何空格中分割出来。请帮忙!

例如,如果我有一个地址变量pi_billing_adress

pi_billing_adress :=  'MS-9/804, ABC Street , Sector - 56, near NFC market , Malviya Nagar , New Delhi India';

我必须使用下面的代码从160个字符的两行除以此地址。

SELECT position(' ' in reverse(SUBSTRING(pi_billing_adress,1, 160))) INTO v_space_postion;

v_billing_address_line1 := SUBSTRING(pi_billing_adress,1, (160-v_space_postion));

v_billing_address_line2 := SUBSTRING(pi_shipping_address, (v_address_lenghth-v_space_postion)+1,LENGTH(pi_shipping_address));

pi_billing_address := concat(v_billing_address_line1, chr(10), v_billing_address_line2 );
postgresql postgresql-10
1个回答
1
投票

这将在字符串中的第162个位置之前引入换行而不是第一个空格:

SELECT regexp_replace(pi_billing_adress, E'^(.{1,160}) (.*)$', E'\\1\n\\2');

我不确定这是否是你所需要的,但无论如何它都是你的起点。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.