Конференция "Базы" » Что может конструкция IIF ? ( MS SQL) [MSSQL]
 
  • Alex7 (24.06.08 09:35) [0]
    Доброго времени суток, уважаемые мастера!
    Подскажите пожалуйста, необходимо реализовать выборку, текст запроса которай предполагаю выглядит так:
    SELECT IIF(FIELD1=0, FIELD2, FIELD1) AS FIELD3 FROM ...
    этот текст возбуждает ошибку некорректный синтаксис около FIELD1.
    Поиск по сайту дал примеры конструкций, но только с условием "FIELD1 IS NULL", а нужна проверка на ноль.
    Спасибо.
  • stas © (24.06.08 09:59) [1]
    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 …
  • stas © (24.06.08 13:41) [4]
    ЮЮ ©   (24.06.08 10:26) [3]
    Какая разница? мне так удобнее, код получается понятнее (для меня)
  • Ega23 © (24.06.08 13:43) [5]

    > ЮЮ ©   (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.
 
Конференция "Базы" » Что может конструкция IIF ? ( MS SQL) [MSSQL]
Есть новые Нет новых   [134434   +28][b:0][p:0.001]