webForumDet fria alternativet

Infoga bindestreck

7 svar · 551 visningar · startad av clarkbones

clarkbonesMedlem sedan feb. 20012 693 inlägg
#1

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.

HansenMedlem sedan aug. 2000383 inlägg
#2

Hej,

Detta borde fungera, jag har inte tillgång till Access.

SELECT MID("8203144578", 1, 6) & '-' & MID("8203144578", 7, 10)
clarkbonesMedlem sedan feb. 20012 693 inlägg
#3

Hmm, tack..men hur gör jag när jag har c a 2000 poster?

LarsGMedlem sedan dec. 200012 465 inlägg
#4

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.

clarkbonesMedlem sedan feb. 20012 693 inlägg
#5

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

UlfTMedlem sedan maj 20016 050 inlägg
#6

Borde inte följande funka?

select mid(personnummer, 1, 6) & '-' & mid(personnummer, 7, 4) from t
clarkbonesMedlem sedan feb. 20012 693 inlägg
#7

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.

LarsGMedlem sedan dec. 200012 465 inlägg
#8

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.

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb