从sql中的表列中提取2个字母的大写子串

时间:2017-11-07 13:18:35

标签: mysql sql regex

我在用户上有一个SQL表,其中特定帐户标有国家/地区代码(大写2个字母单词),而标签中的其他子字符串(全部用逗号分隔)是小写字母或长度超过2个字母。

在用户表中 例如:

id               User_tags
1                alu,US,ATD
2                GB,xx
3                ol,tuds,FR

用户1,2和3被标记到美国,GB和FR国家/地区,我需要从user_tags列中提取它们。我知道需要正则表达式函数,但我无法使它们在SQL查询中工作。

1 个答案:

答案 0 :(得分:0)

创建国家/地区代码参考表并使用以下内容加入。我没有打开sqlserver,所以无法仔细检查语法,但它应该可以工作。

Select * 
From yourtable y left join refcountry r
On charindex (r.code+’,’,y.string+’,’)>0

请注意,对于大型数据集来说,这可能会很慢

如果不是sqlserver在你的rdbms中找到charindex的equiv函数