Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как пользоваться CASE 
V
    Опции темы
MadCoder
Дата 31.7.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: нет
Всего: 2



Это смешно, но никак не могу заюзать CASE. Есть некоторые данные, в зависимости от которых нужно выполнять определенные действия (SELECT, INSERT, UPDATE). Вот упрощенный пример:
Код

declare @A int;
declare @B int;
    case @B
    WHEN 1 THEN SET @A= 2
    WHEN 2 THEN SET @A= 4
    WHEN 3 THEN SET @A= 1
    WHEN 4 THEN SET @A= 5
    ELSE @A=NULL
    END

Что я делаю не так?

Это сообщение отредактировал(а) MadCoder - 31.7.2008, 12:52
PM WWW ICQ   Вверх
TaNK
Дата 31.7.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(MadCoder @ 31.7.2008,  12:51)
Это смешно, но никак не могу заюзать CASE. Есть некоторые данные, в зависимости от которых нужно выполнять определенные действия (SELECT, INSERT, UPDATE). Вот упрощенный пример:
Код

declare @A int;
declare @B int;
    case @B
    WHEN 1 THEN SET @A= 2
    WHEN 2 THEN SET @A= 4
    WHEN 3 THEN SET @A= 1
    WHEN 4 THEN SET @A= 5
    ELSE @A=NULL
    END

Что я делаю не так?

1) 
Код


set @tempy  = case (MONTH(@date1))     --Если месяц ЯНВАРЬ,
              When 1 Then (Year(@date1)-1) --то на 1 уменьшаем год
              ELSE        (Year(@date1)) --иначе не трогаем год
                                          End

2)
Код

select  zdravVol   = (sum(case when pw.ref6_id = 55  then fin.volume else 0 end)) ......

вот примеры использования CASE


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Akina
Дата 31.7.2008, 13:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(MadCoder @  31.7.2008,  13:51 Найти цитируемый пост)
Что я делаю не так?

Ну попытайся догадаться, чему равно @B на момент выполнения CASE...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
MadCoder
Дата 31.7.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: нет
Всего: 2



Цитата(Akina @ 31.7.2008,  13:03)

Ну попытайся догадаться, чему равно @B на момент выполнения CASE...

Я написал, что это упрощенный пример. На момент CASE @B равен определенному значению.

Добавлено @ 13:29
TaNK, спасибо! Первый способ то, что надо smile .

Это сообщение отредактировал(а) MadCoder - 31.7.2008, 13:30
PM WWW ICQ   Вверх
TaNK
Дата 31.7.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



> MadCoder 
 smile


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.