b3rraMedlem sedan juli 2004103 inlägg Hej,
Jag har en tabell som heter Namn, som inehåller "Berra Bertilsson"
Jag skulle vilja hat två kolumner FirstName "Berra" och LastName "Bertilsson"
Kan man genomföra detta direkt via SQL eller måste man scripta till något för att enklast lösa problemet?
// Berra
LarsGMedlem sedan dec. 200012 464 inlägg update t
set firstname = substring(namn from 1 for position(' ' in name) - 1,
lastname = substring(namn from position(' ' in name) + 1)
b3rraMedlem sedan juli 2004103 inlägg I rätt riktning men..
Jag är inte riktigt säker på om jag förstod din update-fras,
försökte läsa på lite mer om substrings men hittade inget som liknade ditt exempel. Tycker det verkas som om man måste ha tre värde
SUBSTRING ( expression, start, length )
Min tanke var ju att jag per automatik skulle kunna flytta ut datan i två kolumner. Mitt problem är nämligen att jag har ca 30 000 namn som behöver trandormeras för att passa in i en ny databasstruktur.
Du brukar ju ha stenkoll på allt som går med SQL.
// Berra
oskarsMedlem sedan nov. 20051 317 inlägg LarsG, menar du att man kan ta ut värden så här: "Börja vid tecken nummer 1 och sluta vid tecken nummer 10 och lägg in det i vald kolumn"?
LarsGMedlem sedan dec. 200012 464 inlägg Eftersom du inte angav vilken DBMS du använder så gav jag ett svar som följer SQL-standarden. Ditt dokumentationsexempel tyder på SQL server i vilket fall man får använda char_index istället för position.
emissionMedlem sedan dec. 19996 721 inlägg update t
set firstname=LEFT(namn ,CHARINDEX(' ',namn)), lastname=RIGHT(namn ,LEN(namn )-CHARINDEX(' ',namn)) WHERE namn LIKE '% %'
b3rraMedlem sedan juli 2004103 inlägg Tack för hjälpen
Ni har gett mig ytterligare en dimension på SQL.
Det gällde en MSSQL 2005, det fungerade precis som jag önskade mig.
// Berra