Avatar billede pnr Nybegynder
06. marts 2006 - 08:07 Der er 4 kommentarer og
1 løsning

Problem med negativetal og null

Jeg har et problem i en tabel med negative tal og NULL værdier. Jeg har følgende data i min tabel

Tabelnavn: tblSider

sideIndex    MenuNavn    Hovedmenu    kundenr   
1    Test1    NULL    24
2    Test2    NULL    24
3    Test3    -1    24
4    Test4    34    24
5    Test5    36    24

Jeg har så følgende sql-sætning:

SELECT    sideIndex, menunavn, hovedmenu
FROM        tblSider
WHERE    (hovedmenu <> - 1) AND (kundenr = 24)


Den returnere følgende:
4    Test4    34    24
5    Test5    36    24

Det jeg havde forventet var:
1    Test1    NULL    24
2    Test2    NULL    24
4    Test4    34    24
5    Test5    36    24


Hvad er der galt?
Avatar billede the_party_dog Nybegynder
06. marts 2006 - 08:56 #1
Der er jo som sådan ikke noget galt.

Hvis du læser din sætning igennem slavisk, vil du se din "fejl". (hovedmenu <> - 1) AND (kundenr = 24) betyder for sql server: Vælg alle rækker hvor hovedmenu er forskellig fra -1 OG kundenr er 24. Ganske rigtig, de 2 rækker du får tilbage passer på dette.

Der hvor kæder hopper af, er dine null værdier. Det er ikke gyldige tal værdier, derfor matcher de ikke på din select statement.

'WHERE    (hovedmenu <> - 1 AND kundenr = 24) OR (hovedmenu is null AND kundenr = 24)'
Avatar billede pnr Nybegynder
06. marts 2006 - 09:19 #2
Det er super, mange tak for hjælpen.

Smid et svar så har jeg point til dig
Avatar billede the_party_dog Nybegynder
06. marts 2006 - 10:25 #3
Et stk svar :)
Avatar billede ldanielsen Nybegynder
13. marts 2006 - 06:34 #4
Hvis du nu ville have at NULL skulle opfattes som 0 (tallet nul) så skulle du gøre sådan:

SELECT    sideIndex, menunavn, hovedmenu
FROM        tblSider
WHERE    (ISNULL(hovedmenu, 0) <> - 1) AND (kundenr = 24)
Avatar billede pnr Nybegynder
13. marts 2006 - 08:53 #5
Idanielsen: Tak for din kommentar :-)
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