Avatar billede fido26 Praktikant
19. januar 2005 - 08:20 Der er 12 kommentarer og
1 løsning

Findes der en slags instr funktion til MSSQL

Hejsa!

I Access kan man bruge en funktion instr(tabel_navn, 'det_man_vil_finde') for at finde ud af om f.eks. tallet 4 findes i en liste som denne "1, 2, 3, 4, 5, 6, 7"

Findes der en lignende funktion i MSSQL??

/Fido26
Avatar billede fennec Nybegynder
19. januar 2005 - 08:24 #1
jeps:
select * from enTabel where id IN(1, 2, 3, 5, 7, 4, 11)
Avatar billede fido26 Praktikant
19. januar 2005 - 08:30 #2
Okay vil det sige at hvis jeg har en kollonne k, i en tabel t som indeholder lister og jeg vil finde de lister der indeholder tallet 4, så skal syntaxen så således ud:

select * from t where '4' IN(k)

Eller hva??
Avatar billede arne_v Ekspert
19. januar 2005 - 08:30 #3
måsker er det CHARINDEX du leder efter

CHARINDEX('CD','ABCDEF')

giver 3
Avatar billede fido26 Praktikant
19. januar 2005 - 08:34 #4
Hvad hvis jeg vil lede i en kollonne hedder den så

select * from tabel where CHARINDEX('4', kollonne)>0

eller hva??
Avatar billede fido26 Praktikant
19. januar 2005 - 08:38 #5
Ja det gør den fandt jeg lige selv ud af. Det eneste problem er bare at den også finder de rækker hvor tal som 14 eller 43 findes i kollonnen. Nogen smart måde at undgå dette??
Avatar billede arne_v Ekspert
19. januar 2005 - 08:42 #6
CHARINDEX(',4,', kollonne)>0 OR CHARINDEX('4,', kollonne)=1 OR CHARINDEX(',4', kollonne)=LEN(kollonne)-2

måske
Avatar billede arne_v Ekspert
19. januar 2005 - 08:42 #7
Men det er absolut ikke pænt relationelt database design at have et felt
med sådan en liste
Avatar billede fido26 Praktikant
19. januar 2005 - 08:45 #8
Nej det er jeg klar over men det er en anden mands kode, jeg er blevet sat til at rette i go så er jeg ikke interresseret i at redesigne databasen
Avatar billede fennec Nybegynder
19. januar 2005 - 08:57 #9
Bare for at nævne det, så virker IN metoden ikke "omvendt", og kan derfor ikke bruges i dette tilfælde, så det skal laves noget ala det arne_v er inde på.

Det er lige nu det ville være rart med noget reg exp, men det er mig bekendt heller ikke implementeret i MS-SQL :(
Avatar billede fido26 Praktikant
19. januar 2005 - 09:11 #10
Jo man kan bruge det i LIKE metoden i MS-SQL 2003 ved jeg men om man kan bruge det i nogen af de metoder i nævner her, ved jeg ikke....
Avatar billede fido26 Praktikant
19. januar 2005 - 10:10 #11
Okay arne_v! Dit forslag kan bruges, så hvis du lige ville svare, så jeg kan gi dig points
Avatar billede arne_v Ekspert
19. januar 2005 - 10:32 #12
svar
Avatar billede fido26 Praktikant
19. januar 2005 - 10:53 #13
Mange tak for hjælpen! Også til dig fennec
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