Ausgabe
Ich habe eine Spalte, die folgende Werte enthält:
Duration
--------
minute45hour1day0
minute8hour10day2
minute15hour2day11
...
Ich möchte Tag, Stunde und Minute in eine andere Spalte extrahieren:
day | hour | minutes
----+------+--------
0 | 1 | 45
2 | 10 | 8
11 | 2 | 15
Um den Tag zu bekommen, an dem ich müde bin:
LEFT(StageDuration, CHARINDEX('day', Duration) - 1) AS day,
Lösung
Hier ist meine Lösung:
SELECT
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 1)) AS minute ,
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 2)) AS hour ,
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 3)) AS day
Bitte überprüfen Sie auch PARSENAME , um die Logik zu verstehen
RÜCKWÄRTS ist einfach. Bsp.: ali -> ila
Beantwortet von – Ali Fidanli
Antwort geprüft von – Timothy Miller (FixError Admin)