Hej, Principen: Hej, Substring, charindex Sql
Jag har ett problem som jag inte riktigt lyckas lösa.. Kanske är det någon som har ett tips?
Problem: jag har textsträngar som ser ut enligt nedan och jag vill skriva ut
det som står mellan de två första bindestrecken.
xx-304-xx-xx
xxx-TI-xx
xxxx-316-xx-xx-xx
I detta fallet alltså:
304
Ti
316
Koden jag försöker använda ser ut så här:
men substringen räcker inte till... för jag vet inte hur jag räknar ut den andra "-" i strängen....
mtrl = case when PATINDEX( '-', ar.artbeskrspec )>=0 then
substring(ar.artbeskrspec,CHARINDEX('-',ar.artbeskrspec)+1,3)
else 'Err' end
Är det någon som har något tips?
Tack på förhand,
FredrikSv: Substring, charindex Sql
mtrl1 = case when PATINDEX( '-', ar.artbeskrspec )>=0 then
substring(ar.artbeskrspec,CHARINDEX('-',ar.artbeskrspec)+1)
else 'Err' end
(inte säker på att det går med substring utan längd-argument, då får du ju räkna ut det också.)
Sen får du använda den igen:
mtrl2 = case when PATINDEX( '-', matrl1)>=0 then
substring(1,matrl1.CHARINDEX('-',matrl1))
else 'Err' end
Är du med på tankegången?Sv:Substring, charindex Sql
Jag är med, tror jag....
Finns det inget sätt att direkt räkna ut det 2:a "-".... räknat från vänster...
det är ju det som ställer till det..
annars får man göra som du föreslår..
tack för hjälpen...
/Fredrik