【问题标题】:selecting values after integer using substring使用子字符串选择整数后的值
【发布时间】:2014-04-04 03:47:33
【问题描述】:

这是我的表结构

创建表#t(id int identity(1,1),street varchar(100)) 插入#t values('#100 Church street'),('#102 vitalFinaly street'),('#101 teriyakei street')

我需要这样的输出:(整数后6个字符)

id(无列名) 1 个教堂 2 重要的F 3 照耀

我试过这个select id,substring(street,6) from #t

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    Use Charindex

    select id,substring(street,charindex(' ',street)+1,6) from #t
    

    SEE DEMO

    【讨论】:

      【解决方案2】:

      请尝试:

      select 
        id, LEFT(SUBSTRING(Street, PATINDEX('%[A-Z]%', Street), LEN(Street)), 6)
      from #t
      

      【讨论】:

        【解决方案3】:

        使用一个查询

        DECLARE @temp TABLE(
            id BIGINT
            ,value NVARCHAR(MAX)
        )
        
        CREATE TABLE #t(id int identity(1,1),street varchar(100))
        INSERT INTO #t 
        OUTPUT
             INSERTED.Id
            ,LEFT(SUBSTRING(Inserted.Street, PATINDEX('%[A-Z]%', Inserted.Street), LEN(Inserted.Street)), 6)
        INTO @temp
        VALUES ('#100 church street'), ('#102 vitalFinaly street'),('#101 teriyakei street')
        
        SELECT *
        FROM @temp
        

        【讨论】:

          【解决方案4】:
          select RTRIM(LTRIM(LEFT(REVERSE(LEFT(REVERSE(street), PATINDEX('%[0-9]%', REVERSE(street)) - 1)),7)))
          from #t
          

          请在上面找到答案。

          【讨论】:

            猜你喜欢
            • 2015-07-26
            • 1970-01-01
            • 2020-03-25
            • 2021-01-30
            • 1970-01-01
            • 2020-03-26
            • 1970-01-01
            • 2019-12-16
            • 2015-07-01
            相关资源
            最近更新 更多