SQL: istruzione IF Access 2010
-
27-10-2019 - |
Domanda
Sto cercando di scrivere una query in Access 2010. Ho una tabella:
Il nome della tabella è power
.Sto provando a scrivere l'istruzione IF:
Select IIf(power.gain_type = 'D', power.gain_max + 2.15)
Se gain_type è uguale a D, allora gain_max somma 2.15
Ad esempio:
14,8 + 2,15= 16,95.
Grazie in anticipo!
Soluzione
Ora mi chiedo come inserire un'istruzione ELSEIF."IF (gain_type= 'D') {gain_max + 2.15} ELSEIF (gain_type= 'I') {gain_max-2.15} ELSE {gain_max}
Puoi utilizzare SWITCH
Select power.gain_max + Switch(power.gain_type='D', 2.15,
power.gain_type='I', -2.15,
true, 0)
from power
o annidare / concatenare gli IIF
Select power.gain_max + IIf(power.gain_type='D', 2.15,
IIf(power.gain_type='I', -2.15, 0))
from power
Originale
Questo fa la selezione
Select IIf(power.gain_type='D', power.gain_max+2.15, power.gain_max)
from power
Stai tentando di aggiornare?
update power
set gain_max = gain_max+2.15
where gain_type='D'
Puoi anche utilizzare il fatto che TRUE= -1 in Access
Select power.gain_max-2.15*(power.gain_type='D')
from power
Riferimenti
Altri suggerimenti
La sintassi è iif(condition, value_if_true, value_if_false)
.Se aggiungi un terzo parametro dovresti andare bene:
IIf(power.gain_type='D',
power.gain_max+2.15,
power.gain_max)
Risultato: IIf ([gain_type]="D", [gain_max] +2.15, [gain_max])