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

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