webForumDet fria alternativet

använda case

8 svar · 352 visningar · startad av neversleep

neversleepMedlem sedan okt. 2001230 inlägg
#1

kan man inte använda case i sql utan att blanda in den i en select sats

jag vill köra olika select beroende på en parameter typ:

select @apa
case 1 then select * from table1
case 2 then select * from table1
end

LarsGMedlem sedan dec. 200012 464 inlägg
#2

i SQL ja.

case variabel
when 1 then 
    statements;
when 2 then 
    statements;
end case;

(select är inte ett statement, i detta kontext)

i T-SQL nej.

Du får nöja dig med if.

neversleepMedlem sedan okt. 2001230 inlägg
#3

ok tack

men kan man göra det på annat sätt. vad jag vill är att uppdatera olika fält med ett invärde beroende på en parameter

update table
case
when @apa=1 then field1=1
when @apa=2 then field2=1
end
where id=1

ovan syntax fungerar inte. Är jag ute och seglar eller.
Lyckas med

update table set field=
case @apa=1 then 2 ....

men det är inte det jag vill

LarsGMedlem sedan dec. 200012 464 inlägg
#4
update t 
set column1 = case
        when @apa=1 then 1 else column1 end,
     column2 = case 
        when @apa=2 then 1 else column2 end
where id=1
neversleepMedlem sedan okt. 2001230 inlägg
#5

suveränt. stort tack

natasMedlem sedan juli 200568 inlägg
#6

Man kan också använda IF.

IF(@apa=1)
SELECT * FROM table1
ELSE
SELECT * FROM table2
Peter SMedlem sedan dec. 20025 483 inlägg
#7

natas skrev:

Man kan också använda IF.

http://www.webforum.nu/showthread.php?p=1142064#post1142064

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Nu blandar du ihop lite. I det länkade inlägget avsågs funktionen if och inte ifsatser. Ifsatser finns i standarden men har en lite annorlunda syntax än i SQL server. Om man vill följa standard och använda SQL server så går det inte att använda procedurer över huvud taget.

Peter SMedlem sedan dec. 20025 483 inlägg
#9

Ja, givetvis :r Ber om ursäkt.

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