Avatar billede bongo20 Nybegynder
19. april 2006 - 08:40 Der er 4 kommentarer og
1 løsning

instring i sql

Hej

Jeg har et varchar felt med f.eks. følgende værdi: "1,2,7"
Hvordan ser min sql ud, hvis jeg vil spørge på om feltet indeholder f.eks. "2" ?

:-)
Avatar billede ldanielsen Nybegynder
19. april 2006 - 08:59 #1
Sådan kunne man gøre:

SELECT * FROM Tabel WHERE ',' + strFelt + ',' LIKE '%,2,%'
Avatar billede ldanielsen Nybegynder
19. april 2006 - 09:07 #2
Det du spørger om er egentlig dette:

SELECT * FROM Tabel WHERE CHARINDEX('2', strFelt) > 0

- hvilket modsvarer InStr. Men du vil vel ikke have at den tager alle hvor 2 findes? Hvis strFelt er "17,23,47" vil den også tage den med.

Så dette:

SELECT * FROM Tabel WHERE CHARINDEX(',2,', ',' + strFelt + ',') > 0

- vil give samme resultat som mit første forslag.

Om du bruger LIKE eller CHARINDEX kommer vel an på performance.
Avatar billede bongo20 Nybegynder
19. april 2006 - 10:11 #3
Jeg bruger CHARINDEX og det virker glimrende,.takker.
smider du et svar?
Avatar billede ldanielsen Nybegynder
19. april 2006 - 10:48 #4
Svar

Jeg håber du er med på at du skal tilføje kommaer for ikke at få for mange med?
Avatar billede bongo20 Nybegynder
19. april 2006 - 12:47 #5
Ja, det er klart. du får tak for hjælpen.
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