webForumDet fria alternativet

IIF i SQL Server

4 svar · 204 visningar · startad av Erik Juhlin

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#1

Finns inte IIF i SQL Server?
Jag skulle vilja skriva ungefär så här i en View:

SELECT IIF(bMemberShowEmail, sMemberEmail, NULL) AS sMemberEmail FROM tblMember

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

[Redigerat av Erik Juhlin den 01 dec 2001]

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det är case som gäller. Iif är förmodligen snart historia.

SELECT case bMemberShowEmail when 1 then sMemberEmail else null end AS sMemberEmail FROM tblMember

(om bMemberShowEmail är bit)

nullif(a,b) är en förkortning av
case when a <> b then a end

------------------
essentitia preter non sans multiplicandum

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#3

Okej, tack! :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#4

Men om jag skulle vilja att bOnline ska vara 1 om DATEDIFF(MINUTE,
o.dOnlineDate, CURRENT_TIMESTAMP) < 10 och annars 0, hur skriver man då?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#5

Äsch, skrev så här... :)

CASE WHEN DATEDIFF(MINUTE, 
    o.dOnlineDate, CURRENT_TIMESTAMP) < 10 THEN 1 ELSE 0 END

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Genererad på 367 ms · cache AV · v20260730165559-full.f96bc7eb