Hej!
Jag har en accessdatabas som innehåller personnummer, sparade utan bindestrecket. DVS så här:
8203144578
Nu vill jag ha in ett bindestreck på alla posterna så att det blir så här:
820314-4578
Lämplig SQL sökes...eller annat förslag.
7 svar · 551 visningar · startad av clarkbones
Hej!
Jag har en accessdatabas som innehåller personnummer, sparade utan bindestrecket. DVS så här:
8203144578
Nu vill jag ha in ett bindestreck på alla posterna så att det blir så här:
820314-4578
Lämplig SQL sökes...eller annat förslag.
Hej,
Detta borde fungera, jag har inte tillgång till Access.
SELECT MID("8203144578", 1, 6) & '-' & MID("8203144578", 7, 10)
Hmm, tack..men hur gör jag när jag har c a 2000 poster?
Vad har antalet poster för betydelse?
select mid('8203144578', 1, 6) & '-' & mid('8203144578', 7, 4)
from t
Korrigerar ett litet fel i Hansens kod.
Tja, det står ju inte 8203144578 i alla poster utan endast i en, vilket jag kanske borde varit tydligare med. Det finns många olika personnummer
UlfT skrev:
Borde inte följande funka?
select mid(personnummer, 1, 6) & '-' & mid(personnummer, 7, 4) from t
Tja, det funkar på ett sätt. Min poäng var dock att jag permanent ville ändra till att personnumret skulle innehålla bindestreck, alltså att det i databasen står "781015-2566". Ber om ursäkt för luddig förklaring. Jag löser problemet genom att skapa ett recordset som jag sedan uppdaterar , tror jag.
Gör update direkt.
update t set personnummer = mid(personnummer, 1, 6) & '-' & mid(personnummer, 7, 4)
Recordset behövs enbart då man hämtar data.