webForumDet fria alternativet

Case-sats med null

5 svar · 352 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Får inte till denna, nån som kan rätta till den!?
Är @Sign 0 så ska alla poster hämtas där s.IDno är null och tvärtom.
Med koden nedan får jag: Incorrect syntax near the keyword 'is'.

	DECLARE @Sign bit
	SET @Sign = 0

	SELECT *
		FROM Task t
		LEFT JOIN Task_Date td On t.IDno = td.TaskIDno
		LEFT JOIN [Sign] s ON td.IDno = s.DateIDno
			WHERE Case @Sign When 0 Then s.IDno is null Else s.IDno Not null End
Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Vild gissning.
Har du testat att ta bort "is" eller ersatt det med ett "="?
"isnull" finns väl också i T-Sql?!

@ndersMedlem sedan juni 200032 969 inlägg
#3

Har du testat att ta bort "is" eller ersatt det med ett "="?

I SQL använder man alltid IS för jämföra med null.

"isnull" finns väl också i T-Sql?!

Ja, IsNull() finns i T-SQL, men jag tycker inte att funktionen kan användas här. :)

doggelitoMedlem sedan juni 20003 076 inlägg
#4

hmm, man kan ju alltid dela i två satser men visst borde det väl gå ändå?!


if(@Sign=0)
     Select ... Where s.IDno is null
else
     Select ...  Where s.IDno is not null
LarsGMedlem sedan dec. 200012 464 inlägg
#5
WHERE (@Sign =  0 and s.IDno is null)
or (@sign <> 0 and s.IDno is Not null)
doggelitoMedlem sedan juni 20003 076 inlägg
#6

Japp, så var det färdigdisskuterat! :bire

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)