-
Alex7 (24.06.08 09:35) [0]Доброго времени суток, уважаемые мастера!
Подскажите пожалуйста, необходимо реализовать выборку, текст запроса которай предполагаю выглядит так:
SELECT IIF(FIELD1=0, FIELD2, FIELD1) AS FIELD3 FROM ...
этот текст возбуждает ошибку некорректный синтаксис около FIELD1.
Поиск по сайту дал примеры конструкций, но только с условием "FIELD1 IS NULL", а нужна проверка на ноль.
Спасибо. -
FIELD3=CASE WHEN FIELD1=0 THEN FIELD2 ELSE FIELD1 END
-
Alex7 (24.06.08 10:25) [2]Большое спасибо! Все работает.
-
ЮЮ © (24.06.08 10:26) [3]> FIELD3=CASE WHEN FIELD1=0 THEN FIELD2 ELSE FIELD1 END
это к чему ?
SELECT CASE WHEN FIELD1=0 THEN FIELD2 ELSE FIELD1 END AS FIELD3 FROM
или
SELECT CASE FIELD1 WHEN 0 THEN FIELD2 ELSE FIELD1 END AS FIELD3 FROM -
ЮЮ © (24.06.08 10:26) [3]
Какая разница? мне так удобнее, код получается понятнее (для меня) -
> ЮЮ © (24.06.08 10:26) [3]
Examples
A. Use a SELECT statement with a simple CASE function
Within a SELECT statement, a simple CASE function allows only an equality check; no other comparisons are made. This example uses the CASE function to alter the display of book categories to make them more understandable.
USE pubs
GO
SELECT Category =
CASE type
WHEN 'popular_comp' THEN 'Popular Computing'
WHEN 'mod_cook' THEN 'Modern Cooking'
WHEN 'business' THEN 'Business'
WHEN 'psychology' THEN 'Psychology'
WHEN 'trad_cook' THEN 'Traditional Cooking'
ELSE 'Not yet categorized'
END,
CAST(title AS varchar(25)) AS 'Shortened Title',
price AS Price
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
COMPUTE AVG(price) BY type
GO
В BOL и так и так пишуть. Я равно предпочитаю, а не as.