03. november 2005 - 10:55Der er
7 kommentarer og 1 løsning
CASE i WHERE clause (problemer med SELECT IN)
hej, jeg har en sp som volder mig lidt hovedpine lige nu, og den del ser sådan ud:
WHERE SPD.ResponsibleProviderEmployeeID = CASE @Mode WHEN 0 THEN @MainProviderEmployeeID WHEN 1 THEN (SELECT * FROM @TeamEmployees) END
hvis den er 0 så er der ingen problemer, men hvis den er 1 så går det galt pga at subquery returner mere end een række. Jeg prøvede med at udskifte = med IN men det giver fejl i syntaksten, hvad kan jeg ellers gøre ud over at dele den op i 2 select statements?
ok... Nej det er det nemlig ikke. Sagen er den at jeg på baggrund at @Mode skal kunne vise egne(@Mode = 0) eller hele holdets (@Mode = 1) aftaler. Så i min midlertidige tabel @TeamEmployees har jeg alle holdets medarbejder. hmmm...
... WHERE (@Mode = 0 AND SPD.ResponsibleProviderEmployeeID = @MainProviderEmployeeID) OR (@Mode = 1 AND SPD.ResponsibleProviderEmployeeID IN (SELECT id FROM @TeamEmployees))
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.