Avatar billede speder Nybegynder
14. juni 2005 - 13:37 Der er 2 kommentarer og
1 løsning

Filtrere på baggrund af felt med delimited karakterer

Hej

Jeg har en tabel som ser sådan ud:

Id  Value
1    1;2;4;6
2    2;6;7;9;112;244;3665
3    3;9;12
4    4;55;125

Hvordan laver jeg noget sql (også gerne T-sql) hvor jeg f.eks. kan trække alle de records ud som indeholder værdien 2 i feltet value. Den skal fungere for alle mulige kombinationer af antallet af værdier i feltet value.
Avatar billede arne_v Ekspert
14. juni 2005 - 13:39 #1
redesigner din database så du har en tabel med:

1  1
1  2
1  4
1  6
2  2
2  6
etc.

:-)
Avatar billede speder Nybegynder
14. juni 2005 - 14:41 #2
Nej, det er desværre ikke optimalt. Her er løsningen:

declare @num varchar(200)
set @num=2
select  * from table1 where (';'+[values]+';') like '%;'+ cast( @num as varchar(200))+';%'
Avatar billede janus_007 Nybegynder
15. juni 2005 - 00:47 #3
Du bryder 1. normalform, derved kan du aldrig opnå noget optimalt som arne_v påpeger.
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