SQL: оператор IF Access 2010 - PullRequest
       2

SQL: оператор IF Access 2010

6 голосов
/ 18 марта 2011

Я пытаюсь написать запрос в Access 2010. У меня есть таблица:

power

Имя таблицы - power.Я пытаюсь написать оператор IF:

Select IIf(power.gain_type = 'D', power.gain_max + 2.15)

Если значение_символа равно D, тогда сумма усиления_2,15

Например:

14,8 + 2,15 = 16,95.

Заранее спасибо!

Ответы [ 3 ]

8 голосов
/ 18 марта 2011

Теперь я задаюсь вопросом, как вставить запись ELSEIF."IF (gain_type = 'D') {gain_max + 2.15} ELSEIF (gain_type = 'I') {gain_max-2.15} ELSE {gain_max}

Вы можете использовать SWITCH

Select power.gain_max + Switch(power.gain_type='D', 2.15,
                               power.gain_type='I', -2.15,
                               true, 0)
from power

или гнездо / цепочка ИИФ

Select power.gain_max + IIf(power.gain_type='D', 2.15,
                        IIf(power.gain_type='I', -2.15, 0))
from power

Оригинал

Это делает выборку

Select IIf(power.gain_type='D', power.gain_max+2.15, power.gain_max)
from power

Вы пытаетесь обновить?

update power
set gain_max = gain_max+2.15
where gain_type='D'

Вы также можете использовать тот факт, что TRUE = -1 в Access

Select power.gain_max-2.15*(power.gain_type='D')
from power

Ссылки

1 голос
/ 18 марта 2011

Синтаксис iif(condition, value_if_true, value_if_false). Если вы добавите третий параметр, все будет в порядке:

IIf(power.gain_type='D', 
    power.gain_max+2.15,
    power.gain_max)
0 голосов
/ 18 марта 2011

Результат: IIf ([gain_type] = "D", [gain_max] +2.15, [gain_max])

enter image description here

...