13.03.2007, 18:23
общий
это ответ
Здравствуйте, Piit!
В некоторых SQL запросах, в частности в Access, будет работать такая запись ( все примеры из рабочих программ ) :
select obname, gr , iif ( nal = true , ‘Да‘ , ‘Нет‘ ) as na , iif ( bux = true , ‘Да‘ , ‘Нет‘ ) as bu from base
update base set m4_n=int ( ( price-izn_n-m1_n-m2_n-m3_n ) *100 * iif ( n_sch = ‘1‘ , 0.05 , iif ( n_sch = ‘2‘ , 0.25 ,0.15 ) ) / 4 + 0.5 ) / 100 WHERE nal = true and gr = 1 and not ( go = 8 and n_sch = ‘1‘ ) and shifr < 99999
По количеству вложений функции iif ( ) у меня получалось до 7, в теории не ограничено.
При работе с SQL Server функция iif ( ) не работает, нужно использовать оператор
CASE
WHEN условие THEN команды
..
ELSE команды
END
select HMnac as nac , HMpos as pos , cast ( HOst as float ) / 100 as dolg , ( CASE WHEN HZakr <= cast ( ‘1.1.2002‘ AS smalldatetime ) THEN ‘‘ ELSE ‘<>‘ END ) AS zak, * from Mir
С уважением.