请问我要把每列中的小区简称提取出来,用sql怎么实现,需要提取的内容没有固定位置和长度,但已经把所有简称整理出来了。
如:位置
1.银河路胜利小区东大门
2.天山路向阳南花园西门出口
3.迎宾大道雅典娜行人2
希望生成下面的格式
1.胜利
2.向阳南
3.雅典娜
“已经把所有简称整理出来了”
这样的话,假设你已经把简称存到了 A表 的 name列 里,且原始字符串不存在歧义(可能判断出多个小区),那么可以使用like或者instr函数进行关联.假设原字符串存在于B表的ADDR列
select * from B LEFT JOIN A ON B.ADDR LIKE CONCAT('%',A.NAME,'%');
select * from B LEFT JOIN A ON INSTR(B.ADDR,A.NAME)>0;
当然也可以使用标量子查询,方法类似。
你这没有规律的,不能用sql提取,除非定义有规则。