Avatar billede zeus999 Nybegynder
25. maj 2005 - 14:10 Der er 9 kommentarer og
1 løsning

søg og erstat på et felt i en tabel

Jeg skal finde en del af en tekst ("læge") i et tekst felt i en tabel på en MSSQL DB og fjerne denne del fra samme sted.
F.eks. står der "Læge Hans Hansen" i et felt i en tabel.
Jeg skal finde "læge" og have dette fjernet således at der nu står "Hans Hansen".
Avatar billede arne_v Ekspert
25. maj 2005 - 14:15 #1
prøv:

UPDATE tabelnavn SET feltnavn=REPLACE(feltnavn,'læge','') WHERE ...
Avatar billede zeus999 Nybegynder
25. maj 2005 - 14:22 #2
Hvis der står "lægehuset hansen og jensen" vil den så fjerne "læge" således at der står "Huset hansen og jensen"???
Avatar billede arne_v Ekspert
25. maj 2005 - 14:28 #3
ja

hvis du vil undgå det

UPDATE tabelnavn SET feltnavn=REPLACE(feltnavn,' læge ',' ') WHERE ...
Avatar billede zeus999 Nybegynder
25. maj 2005 - 14:39 #4
Eneste forskel på scriptet er så at der er kommet mellemrum i ' læge ' ?
Jeg bliver aldrig klog på sql :-(
Avatar billede arne_v Ekspert
25. maj 2005 - 14:43 #5
så replacer den jo kun når der er mellemrum foran og efter læge
Avatar billede zeus999 Nybegynder
25. maj 2005 - 14:49 #6
jamen jeg må sige mange tak for hjælpen.
Efter at have fjernet mellemrummet i starten ville den gerne tage dem som havde læge foran men ikke imellem kontakt navnet. Du må lige give mig et "svar" så du kan få nogle point :-)
Avatar billede arne_v Ekspert
25. maj 2005 - 14:52 #7
ok
Avatar billede ldanielsen Nybegynder
26. maj 2005 - 01:19 #8
Så vil den jo lave "dyrlæge" om til "dyr".

Prøv med:
... feltnavn = REPLACE(' ' + feltnavn, ' læge ', ' ') WHERE ...
Avatar billede arne_v Ekspert
26. maj 2005 - 07:12 #9
hjælper vel kun hvis ordet er først i feltet
Avatar billede ldanielsen Nybegynder
26. maj 2005 - 11:47 #10
Jeg mangler lige at fjerne det første space igen:
... feltnavn = LTRIM(REPLACE(' ' + feltnavn, ' læge ', ' ')) WHERE ...

Så skulle den virke:
"Læge Mogens Hansen" bliver til "Mogens Hansen"
"lægehuset hansen og jensen" berøres ikke
"Dyrlæge Anna Piil" berøres ikke

Men:
"Midtbyens læge Hans Hansen" bliver til "Midtbyens Hans Hansen", så det er måske ikke så godt.

Nu behøver vi måske heller ikke tærske langhalm på det, men jeg synes det er sjovt at lave den slags småting. Hvis man kan undgå at skulle lave en function eller at bruge CASE, så synes jeg det er en lille sejr.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester