一番右側にある特定の文字(-)の後にすべてを選択したいと思います。
例えば。
abcd-efgh-XXXX
そして、XXXX
部分を選択したい
ありがとう!
次を使用できます。
select right(col, charindex('-', reverse(col)) - 1)
DECLARE @x varchar(100)
SET @x = 'abcd-efgh-XXXX'
SELECT RIGHT(@x, CHARINDEX('-', REVERSE(@x)) - 1)
;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
@thegameiswarには賢い解決策がありました。コンマ区切りのリストからの結果が必要だったからです。私はSQL 2016を持っていないので、ユーザー定義の分割関数で動作するようにしました。
;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
select substr('Prueba,Prueba2',instr('Prueba,Prueba2',',') + 1) from dual
SQL Server Management Studio v15.0.18206.0(18.4):
RIGHT([col]、CHARINDEX( '-'、REVERSE([col])、-1))