webForumDet fria alternativet
Logga in / Bli medlem

case

Databaser & SQL

5 svar · 207 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Trådstart#1

Hej

Har följande rad som jag ska byta ut mot case från iif.
Får dock inte det att funka.

"iif(energi + energitot >= 1000,1000,energi + energitot), "

Hur ska jag gå till väga?

Medlem sedan mars 20034 471 inlägg
#2

Vet inte om det funkar men du kan ju pröva med:

case when (energi + energitot >= 1000) then 1000 else (energi + energitot >= 1000) end

Medlem sedan dec. 200012 464 inlägg
#3
case when energi + energitot >= 1000 then 1000
           else energi + energitot end
Medlem sedan juni 20015 009 inlägg
#4

Tack funkar utmarkt med den LarsG skrev. :)
Hur ska man bygga på case satsen om man vill ha flera?
Har en lång iif sats som jag måste göra om också.

"Update anvandare set energitot = (iif(dagaraktiv between 0 and 9,'40',iif(dagaraktiv between 10 and 19,'60',iif(dagaraktiv between 20 and 29,'70',iif(dagaraktiv between 30 and 39,'80',iif(dagaraktiv between 40 and 49,'90',iif(dagaraktiv between 50 and 1000,'100',)))))))"

re: antar det blir samma procedur efter ett tag men jag vet inte riktigt hur jag ska börja ;)

Medlem sedan dec. 200012 464 inlägg
#5
Update anvandare 
set energitot = case 
  when dagaraktiv between  0  and   9 then 40
  when dagaraktiv between 10 and 19 then 60 
  when dagaraktiv between 20 and 29 then 70 
  when dagaraktiv between 30 and 39 then 80 
  when dagaraktiv between 40 and 49 then 90
  else 100 end
Medlem sedan juni 20015 009 inlägg
#6

Tack än en gång, den funka också bra. Nu klarar jag lösa dem andra också :)

343 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
201 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
202 ms — ändringar (db)