Avatar billede steen Nybegynder
29. marts 2005 - 09:43 Der er 14 kommentarer og
1 løsning

fjerne uønskede poster

Hej,

Jeg har en database med en masse domænenavne jeg skal sortere.
Problemet er at nogen steder er domænet gentaget, og endda dobbelt, og det er disse jeg gerne vil fjerne!

tabelnavn: dom
-----------------
id  |  dom      |
-----------------
1    test.dk   
2    test.dktest.dk
3    ting.dk
4    ting.dkting.dk

Så hvordan laver jeg en "slet alle poster der indeholder 2 punktummer"?
Avatar billede kalp Novice
29. marts 2005 - 09:47 #1
normalt bruger man DISTINCT men er lidt forvirret over de kommer ud sådan her test.dktest.dk ... hvis de kun optræder en gang i databasen så er det nok distinct du leder efter.
Avatar billede kalp Novice
29. marts 2005 - 09:49 #2
Så skal du selvfølgelig bare skrive

Select DISTINCT dinKolonne
From dom
Avatar billede steen Nybegynder
29. marts 2005 - 09:50 #3
jeg ved hvad du mener, men det er ikke distinct der er løsningen. For det er jo helt unikke poster for databasen, bare ikke for øjet ;-)
29. marts 2005 - 09:58 #4
Jeg har lavet denne funktion, som du kan lægge i et modul:

Public Function TælForekomster(Streng As String, Forekomst As String) As Long
    Dim Counter As Long
    Dim pos As Long
    Do Until InStr(pos + 1, Streng, Forekomst) = 0
        Counter = Counter + 1
        pos = InStr(pos + 1, Streng, Forekomst)
    Loop
    TælForekomster = Counter
End Function


Herefter kan du lave denne forespørgsel:

Delete From Dom Where TælForekomster([Dom],".")>1
Avatar billede steen Nybegynder
29. marts 2005 - 10:07 #5
Jeg får beskeden:

Der er en ikke-defineret funktion "TælForekomster" i udtrykket

og jeg har sat koden som du beskrev ind i et modul
29. marts 2005 - 10:10 #6
hvor sætter du SQL'en ind? Har du lavet en ny forespørgsel og indsat delete-sætningen i SQL visning?
Avatar billede steen Nybegynder
29. marts 2005 - 10:17 #7
ja... jeg har lavet en forespørgsel med indholdet:

DELETE *
FROM Dom
WHERE TælForekomster([Dom],".")>1;

og jeg har også tjekket for stavefejl ;-)
29. marts 2005 - 10:21 #8
hmm, det modul, som du har gemt funktionen i; hvad har du kaldt det? det må ikke hedde TælForekomster ligesom funktionen.
Avatar billede steen Nybegynder
29. marts 2005 - 10:25 #9
så kom jeg videre.... ;-)

Næste step er: Datatyperne stemmer ikke overens i kriterieudtrykket
29. marts 2005 - 10:37 #10
feltet "DOM" er vel tekst?

Prøv denne:

DELETE FROM Dom
WHERE TælForekomster([Dom].[Dom],".")>1;

(* er ikke nødvendig ;)

Jeg har prøvet det hos mig selv og der virker det fint...
Avatar billede steen Nybegynder
29. marts 2005 - 11:02 #11
Gider du så ikke maile mig dit eksempel til udskiftdettemedmitbrugernavn@soenderup.com
29. marts 2005 - 11:14 #12
er sendt...
Avatar billede steen Nybegynder
29. marts 2005 - 11:19 #13
tak... det virker perfekt ;-)
29. marts 2005 - 11:20 #14
Perfekt! Fandt du fejlen?
Avatar billede steen Nybegynder
29. marts 2005 - 13:42 #15
ja... det var mine data der var noget galt med.... der var pludselig et tomt felt ;-)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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