Sql 使用PatIndex获取子字符串的第二个匹配项
通过这个查询,我从一个地址获得了邮政编码,它是有效的,但是在某些情况下,地址号码的长度是5,因此我得到的是这个而不是邮政编码,是否有可能通过PatIndex获得最后一次出现的结果Sql 使用PatIndex获取子字符串的第二个匹配项,sql,substring,patindex,Sql,Substring,Patindex,通过这个查询,我从一个地址获得了邮政编码,它是有效的,但是在某些情况下,地址号码的长度是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 p
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
如果要获取最后一个事件 反向地址 在反向地址中查找第一个匹配的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