截取字段

XX省XX市XX县区XX乡镇街道XX社
名称都是不固定的,怎么最终截取的值就是XX村或这XX社



FineReportGk667s 发布于 2016-10-14 14:41
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
孤陌发布于2016-10-14 14:41(编辑于 2023-9-6 09:34)
555
  • Gk667s Gk667s(提问者)

    怎么实现,第一个省字呢截取呢,万一有两个省字
    回复
    2016-10-14 15:17 
最佳回答
0
gxy120313发布于2016-10-14 14:45(编辑于 2023-9-6 09:34)
555
  • Gk667s Gk667s(提问者)

    但是这个不像固定的一串数字,这个名称有的两个有的三个不能确定的
    回复
    2016-10-14 14:47 
最佳回答
0
Gk667s发布于2016-10-14 14:47(编辑于 2023-9-6 09:34)
555
  • gxy120313 gxy120313

    可以先把名称分开,然后再进行截取,不然没有办法进行区分
    回复
    2016-10-14 14:50 
最佳回答
0
gxy120313发布于2016-10-14 14:50(编辑于 2023-9-6 09:34)
555
  • Gk667s Gk667s(提问者)

    这个不太好,可以就是定位到乡或者县吗
    回复
    2016-10-14 14:51 
最佳回答
0
Gk667s发布于2016-10-14 14:51(编辑于 2023-9-6 09:34)
555
最佳回答
0
孤陌发布于2016-10-14 15:00(编辑于 2023-9-6 09:34)
555
最佳回答
0
Gk667s发布于2016-10-14 15:01(编辑于 2023-9-6 09:34)
555
  • pangfusheng pangfusheng

    根据 省  市 县的字来定位啊
    回复
    2016-10-14 15:04 
最佳回答
0
孤陌发布于2016-10-14 15:04(编辑于 2023-9-6 09:34)
555
  • Gk667s Gk667s(提问者)

    我知道根据这个来定位,怎么设置呢
    回复
    2016-10-14 15:05 
最佳回答
0
Gk667s发布于2016-10-14 15:05(编辑于 2023-9-6 09:34)
555
  • pangfusheng pangfusheng

    SELECT
    left(name,PATINDEX(\'%省%\',name)-1)\'省\',
    substring(name,PATINDEX(\'%省%\',name)+1 --从【省+1后】开始截取
    ,PATINDEX(\'%市%\',name)-1-CHARINDEX(\'省\',name))\'市\' --市长度减掉省长度
    from Tab where id=10
    回复
    2016-10-14 14:41 
最佳回答
0
Gk667s发布于2016-10-14 15:17(编辑于 2023-9-6 09:34)
555
  • pangfusheng pangfusheng

    那就没有办法了,情况太多了。 还有没有省的呢
    回复
    2016-10-14 15:19 
  • pangfusheng pangfusheng

    Public Sub abc()
    Dim ar, i, rep, str
    ar = Range(\"a1\").CurrentRegion
    Set rep = CreateObject(\"vbscript.regexp\")
    rep.Global = True
    For i = 2 To UBound(ar)
        rep.Pattern = \"^.+?(省|市|自治区)\"
        ar(i, 2) = rep.Execute(ar(i, 1))(0)
        str = Replace(ar(i, 1), rep.Execute(ar(i, 1))(0), \"\")
        rep.Pattern = \"^.+?(县|市)\"
        If rep.test(str) Then
            ar(i, 3) = rep.Execute(str)(0)
            str = Replace(str, rep.Execute(str)(0), \"\")
        End If
        If rep.test(str) Then
            ar(i, 4) = rep.Execute(str)(0)
            str = Replace(str, rep.Execute(str)(0), \"\")
        End If
        rep.Pattern = \"^.+?区\"
        If rep.test(str) Then
            ar(i, 5) = rep.Execute(str)(0)
            str = Replace(str, rep.Execute(str)(0), \"\")
        End If
        ar(i, 6) = str
    Next
    Range(\"a1\").CurrentRegion = ar
    End Sub
    回复
    2016-10-14 15:21 
  • 0关注人数
  • 666浏览人数
  • 最后回答于:2016-10-14 16:17
    活动推荐 更多
    热门课程 更多
    返回顶部