Запрос под MsSql
От: yorik.kiev.ua  
Дата: 10.03.05 11:57
Оценка:
Есть таблица

CREATE TABLE table1 (a int, b int, c int)


Как написать запрос, возвращающий 1 столбец, в котором если а<1 , то стояло бы значение столбца b, если нет, с.

Просьба больно не бить, если вопрос уж совсем ламерский, честно лопатил faq-и, ответа не нашел.
Заранее спасибо.
Re: Запрос под MsSql
От: Merle Австрия http://rsdn.ru
Дата: 10.03.05 12:09
Оценка: +1
Здравствуйте, yorik.kiev.ua, Вы писали:

YKU>Как написать запрос, возвращающий 1 столбец, в котором если а<1 , то стояло бы значение столбца b, если нет, с.


SELECT 
            CASE 
                WHEN a < 1 
                THEN b 
                ELSE c 
            END 
FROM table1
... [ RSDN@Home 1.1.4 rev 302 ]
Мы уже победили, просто это еще не так заметно...
Re: Запрос под MsSql
От: Smirnov.Anton Россия  
Дата: 10.03.05 12:10
Оценка:
Здравствуйте, yorik.kiev.ua, Вы писали:

 select 
  case 
    when a<1 then b
    else c
  end as abc 
 from table1
Re: Запрос под MsSql
От: stasukas  
Дата: 10.03.05 12:11
Оценка:
Здравствуйте, yorik.kiev.ua, Вы писали:

YKU>Есть таблица


YKU>
CREATE TABLE table1 (a int, b int, c int)


YKU>Как написать запрос, возвращающий 1 столбец, в котором если а<1 , то стояло бы значение столбца b, если нет, с.


CASE
    WHEN Boolean_expression THEN result_expression 
        [ ...n ] 
    [ 
        ELSE else_result_expression 
    ] 
END


пример:
USE pubs
GO
SELECT    'Price Category' = 
      CASE 
         WHEN price IS NULL THEN 'Not yet priced'
         WHEN price < 10 THEN 'Very Reasonable Title'
         WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
         ELSE 'Expensive book!'
      END,
   CAST(title AS varchar(20)) AS 'Shortened Title'
FROM titles
ORDER BY price
GO
... << RSDN@Home 1.1.4 beta 4 rev. 309>>
Re[2]: Запрос под MsSql
От: yorik.kiev.ua  
Дата: 10.03.05 12:26
Оценка:
Здравствуйте, stasukas, Вы писали:

S>
S>CASE
S>    WHEN Boolean_expression THEN result_expression 
S>        [ ...n ] 
S>    [ 
S>        ELSE else_result_expression 
S>    ] 
S>END
S>


Блин, а я через if все пытался... Сенкс!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.