webForumDet fria alternativet

SQL-server: Dela upp namn i en kolumn utifrån komma

Databaser & SQL

1 svar · 689 visningar · startad av Saldina

Medlem sedan juni 20112 inlägg
Frågan#1

Hej,

Jag skulle behöva hjälp i SQL server. Jag har en kolumn som innehåller namn i form av:

Andersson, Anders Lars
Berg Kvist, Marie-Louise
Sörensson, Johan Niklas

etc. Vad jag skulle behöva göra är att dela upp namnen i efternamn och förnamn (alltså separera på Andersson och Anders Lars i två olika kolumner). Vad gäller efternamn kör jag:

set Efternamn=LEFT(Namn, CHARINDEX(', ', Namn) - 1)

vilket verkar fungera. Men för att sedan ta fram förnamnen och få de i en separat kolumn går det inte lika bra. Någon som kan hjälpa mig?

Medlem sedan jan. 2005327 inlägg
#2

Hmm,
Det beror ju på var data för namn kommer ifrån.
Går det att lita på att det bara finns , på exakt ett ställe per post osv osv...

Men typ så här:

Select
SUBSTRING (Namn,1,(CHARINDEX(', ',Namn) )) as ename,
SUBSTRING (Namn,(CHARINDEX(', ',Namn) )+1,(len(Namn)- (CHARINDEX(' ',Namn) ))) as fname
from table

Dvs du får väl använda funktioen len

//

372 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
115 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)