首页 > 解决方案 > 如何从列中的数据结构中获取值

问题描述

我在表中有数据,我正在使用 SQL Server,如下所示:

数字 价值
1 /F10749180509 1/TOYOTA TSUSHO ASIA PACIFIC PTE. L 1/TD。2/600 NORTH BRIDGE ROAD HEX19 01, P 3/SG/ARKVIEWSQUARE 新加坡 188778
2 /0019695051 1/PT ASURANSI ALLIANZ LIFE 1/印度尼西亚 2/ALLIANZ TWR 16FL JL.HRRASUNA SAID 3/ID/雅加达

正如您在表格中看到的,我需要从字段值中找到国家代码。国家代码可以在“3/”之后的字符串中找到。第一行的示例,我需要在 3/ 之后获取“SG”,第二行我需要在 3/ 之后获取“ID”,依此类推。实际上,如果我将第一个数据从值字段复制到记事本,则数据由新行分隔。数据将如下所示:

/F10749180509
1/TOYOTA TSUSHO ASIA PACIFIC PTE. L
1/TD.
2/600 NORTH BRIDGE ROAD HEX19 01, P
3/SG/ARKVIEWSQUARE SINGAPORE 188778

请帮助查找查询以获取国家代码。谢谢

标签: sqlsql-servertsql

解决方案


我们也许可以在PATINDEX这里与SUBSTRING. 假设国家代码总是正好是两个大写字母,我们可以试试:

SELECT val, SUBSTRING(val, PATINDEX('% [0-9]/[A-Z][A-Z]/%', val) + 3, 2) AS country_code
FROM yourTable

演示


推荐阅读