SQL题:怎么根据车牌号获取车牌归属地,例如:蓝粤RFC256得出:粤R

select right(regexp_replace(a.cph,'[[a-z0-9]]',''),1) as cpgs,   -- 获取省份简称 

            concat(right(regexp_replace(a.cph,'[[a-z0-9]]',''),1),left(REPLACE(a.cph,right(regexp_replace(a.cph,'[[a-z0-9]]',''),CHAR_LENGTH(a.cph)),''),1)) as cp  

我是利用正则表达式获取,但是效率太低,要是能用正则表达式直接获取出粤R等信息就好了。微信图片编辑_20230420155954.jpg

SQL 两千乱渣 发布于 2023-4-20 16:07
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
机智的ywjLv5初级互助
发布于2023-4-20 16:41

关联一张所有地区表缩写(比如粤)字符串关联匹配,index取到下标,取两位

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-20 16:08

增加一个字段定时把每个车牌的 归属地提取到该字段

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-4-20 16:09

直接字符串截取

最佳回答
0
1592Lv6高级互助
发布于2023-4-20 16:10

先截取后7位,在截取前2位

  • 两千乱渣 两千乱渣(提问者) 车牌号不一定是七位也有八位的
    2023-04-20 16:21 
  • 1592 1592 回复 两千乱渣(提问者) 不想判断长度,那就在源头把字段拆了
    2023-04-20 16:29 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-4-20 16:11

一个思路,正常字符8个长度,取第二第三个字符,超过8个取第四第五个字符

  • 两千乱渣 两千乱渣(提问者) 车牌号不一定是七位还有八位的,而且你这还要判断车牌号长度,这样效率低下
    2023-04-20 16:22 
  • snrtuemc snrtuemc 回复 两千乱渣(提问者) 我看你的,一般标准8为,只是现在新能源出来不一样了,所以只能先判断,不然还是你原来的sql把,自己舍取下
    2023-04-20 16:26 
  • 两千乱渣 两千乱渣(提问者) 还是用正则表达式吧,我这个数据量蛮大的
    2023-04-20 16:45 
  • 4关注人数
  • 355浏览人数
  • 最后回答于:2023-4-20 16:41
    请选择关闭问题的原因
    确定 取消
    返回顶部