wake-up-neo.com

SQL Alles nach Zeichen auswählen

Ich möchte alles auswählen, nachdem ein bestimmtes Zeichen (-) ganz rechts platziert wurde.

Z.B.

abcd-efgh-XXXX

Und ich möchte den XXXX-Teil auswählen

Vielen Dank!

5
coblenski

Sie können verwenden:

select right(col, charindex('-', reverse(col)) - 1)
23
Gordon Linoff
DECLARE @x varchar(100)
SET @x = 'abcd-efgh-XXXX'
SELECT RIGHT(@x, CHARINDEX('-', REVERSE(@x)) - 1)
2
ADyson

Verwenden von String Split verfügbar ab 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
1
TheGameiswar

@thegameiswar hatte eine clevere Lösung, da ich die Ergebnisse von einer durch Kommas getrennten Liste benötigte. Ich habe kein SQL 2016, also habe ich es mit einer benutzerdefinierten Splitfunktion funktionieren lassen.

;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
1
KirstieBallance