当前位置: 代码迷 >> Sql Server >> 小弟我发个字符截取的帖子
  详细解决方案

小弟我发个字符截取的帖子

热度:9   发布时间:2016-04-27 13:29:34.0
我发个字符截取的帖子,
 
  a b
  1 1111广东省23455嘎嘎嘎镇DKSKL
  2 KSKSKAKL什么的镇12345678
  3 上海市JJ镇


我要抓出镇名 也就是

  a b
  1 嘎嘎嘎镇
  2 什么的镇
  3 JJ镇

因为没有县名,想从县名+1下手都不行了,镇名的长度不一样+2也不行。求高手了。

------解决方案--------------------
其实很简单的,这种东西先按需求来
最终要获得的是select a,b,GetTown(b) from tb
那么开始就要写个GetTown函数
首先获取'镇'的位置
然后前面那段哪些是不要的呢?按人的逻辑,结合数据一看,有如下几种:
1。到了‘市’
2。遇到了字母
3。遇到了数字
那还不容易写吗?
SQL code
create function GetTown(@name nvarchar(max))returns nvarchar(max)begindeclare @i intset @i=2          set @name=substring(@name,1,charindex('镇',@name,1))      while @i<len(@name)         if substring(reverse(@name),@i,1) like '[0-9]'          or substring(reverse(@name),@i,1) like '[a-z]'          or substring(reverse(@name),@i,1) = '市'            return (@name)         else            set @name=stuff(...).........end
  相关解决方案