SQL Select everything after character

前端 未结 6 713
半阙折子戏
半阙折子戏 2021-02-07 07:18

I\'d like to select everything AFTER a certain character (-) that is placed on the most right side.

Eg.

abcd-efgh-XXXX

And I\'d like t

相关标签:
6条回答
  • 2021-02-07 07:29

    You can use:

    select right(col, charindex('-', reverse(col)) - 1)
    
    0 讨论(0)
  • 2021-02-07 07:31
    select substr('Prueba,Prueba2',instr('Prueba,Prueba2',',') + 1) from dual
    
    0 讨论(0)
  • 2021-02-07 07:47
    DECLARE @x varchar(100)
    SET @x = 'abcd-efgh-XXXX'
    SELECT RIGHT(@x, CHARINDEX('-', REVERSE(@x)) - 1)
    
    0 讨论(0)
  • 2021-02-07 07:49

    @thegameiswar had a clever solution, since I needed the results from a comma delimited list. I don't have SQL 2016, so I made it work with a user defined split function.

    ;with cte
    as
    (
     select 
     *,row_number() over (order by (select null)) as rownum
     from database..[fn_SplitDelimitedList](@CommaDelimitedList,',')
    )
    select * from cte 
    order by rownum desc
    
    0 讨论(0)
  • 2021-02-07 07:54

    Using string split available from SQLServer 2016

    ;with cte
    as
    (
     select 
    *,row_number() over (order by (select null)) as rownum
     from string_split('abcd-efgh-XXXX','-')
    )
    select top 1 * from cte 
    order by rownum desc
    
    0 讨论(0)
  • 2021-02-07 07:55

    SQL Server Management Studio v15.0.18206.0 (18.4):

    RIGHT([col], CHARINDEX('-', REVERSE([col]), -1))

    0 讨论(0)
提交回复
热议问题