获取第二个出现在patindex中的子字符串

dfuffjeb  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(319)

通过这个查询,我从一个地址得到了邮政编码,它可以工作,但是有些情况下,地址号码的长度是5,所以我得到的是这个而不是邮政编码,有没有可能用patindex得到最后一个匹配项?

SELECT address,IIF((PatIndex('%[0-9][0-9][0-9][0-9][0-9]%', address)>0), substring(address, PatIndex('%[0-9][0-9][0-9][0-9][0-9]%', address), 5) , NULL) AS postalCode
from table
yizd12fk

yizd12fk1#

如果你想得到最后一次
反向地址
查找第一个匹配项 PatIndex 在反向地址中
反转第一个匹配的子串
因此

SELECT address,IIF((PatIndex('%[0-9][0-9][0-9][0-9][0-9]%', address)>0), reverse(substring(reverse(address), PatIndex('%[0-9][0-9][0-9][0-9][0-9]%', reverse(address)), 5)) , NULL) AS postalCode
from tbl

用db运行

相关问题