gpt4 book ai didi

sql - 根据条件提取T-SQL中的子字符串

转载 作者:行者123 更新时间:2023-12-04 21:37:59 25 4
gpt4 key购买 nike

我在 sql 列中有地址,其中还包含邮政编码,即如下格式

10 westminister way Road, London (NW10 5NQ)

但并非所有记录都可能有邮政编码,以防万一

 10 westminister way Road, London

我需要从字符串中提取帖子,如果邮政编码不存在,我认为我需要使用 contain 但不确定如何修改现有代码以执行此操作,但以下字符抛出错误,但工作正常

select 
,REVERSE(SUBSTRING(REVERSE([address]),2, CHARINDEX('(', REVERSE([address]))-2)) PostCode
,CHARINDEX('(', REVERSE([address]))-2 indexDetail

我的问题是如何使用 contain 或 if 条件 so

 if(CHARINDEX('(', REVERSE([address])) = true then proceed with substring
else ignore record

最佳答案

使用 IIF。这将获取括号中的所有内容,无论邮政编码有多长。我不确定它们在英国是否有所不同。

declare @table table ([address] varchar(256))
insert into @table
values
('10 westminister way Road, London (NW10 5NQ)'),
('10 westminister way Road, London')

select
[address],
PostCode = iif(charindex('(',[address]) > 1, substring([address],charindex('(',[address]),charindex(')',[address])),''),
PostalNoParan = iif(charindex('(',[address]) > 1, replace(replace(substring([address],charindex('(',[address]),charindex(')',[address])),'(',''),')',''),'')
from @table

关于sql - 根据条件提取T-SQL中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52993301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com