Avatar billede target Nybegynder
04. juli 2005 - 08:52 Der er 4 kommentarer og
1 løsning

Hjælp til Where-sætning

Hej

Jeg har en Stored Procedure, som ser således ud:

CREATE  procedure sp_Hent_Alle
@Status Int = null
as
SELECT * From Tabel WHERE Status = IsNull(@Status, Status)


Problemet er, at hvis feltet Status er null, så kommer row'en ikke ud.
Ligeledes, hvis jeg laver en Select-sætning som er således:
Select * From Tabel Where Status = Status
Så kommer row'en heller ikke ud, hvis feltet status er null.

Hvordan kan det være? Og hvordan kan jeg omgå dette?
Avatar billede janus_007 Nybegynder
04. juli 2005 - 12:47 #1
Det er fordi du ikke bare kan sammenligne null med null
Gør sådan her:

SELECT * From Tabel WHERE IsNull(Status, -1) = IsNull(@Status, -1)
Avatar billede target Nybegynder
04. juli 2005 - 13:58 #2
Den er ikke helt holdbar i mit tilfælde... For hvis @Status er null, så skal alle rows vises... I det tilfælde dér, bliver der kun vist dem, hvor der står null i databasen...
Avatar billede target Nybegynder
04. juli 2005 - 14:03 #3
Fik selv lige løst det sidste problem der. Lavede bare en or;
Select * From Tabel Where IsNull(Status, -1) = IsNull(@Status, -1) or Status = IsNull(@Status, Status)
Avatar billede target Nybegynder
04. juli 2005 - 14:04 #4
janus_007 <- Hvis du kommer med et svar, så får du point. :)
Takker for hjælpen
Avatar billede target Nybegynder
31. oktober 2005 - 15:03 #5
Jeg lukker her
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