Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 77
от 15.04.2006, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 265, Экспертов: 33
В номере:Вопросов: 1, Ответов: 4


Вопрос № 39886: Скажите ,пожалуйста, есть ли в SQL оператор типа IF или, что еще лучше CASE. Мне нужно написать запрос, в котором в зависимости от значения поля это значение умножалось на разные числа....

Вопрос № 39.886
Скажите ,пожалуйста, есть ли в SQL оператор типа IF или, что еще лучше CASE. Мне нужно написать запрос, в котором в зависимости от значения поля это значение умножалось на разные числа.
Отправлен: 10.04.2006, 13:26
Вопрос задала: TTT (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Архангельский Андрей Германович
Здравствуйте, TTT!

В SQL-99 есть операторы Case и IF, но не все СУБД их поддерживают
Подробное описание смотри в Мартина Грабера "SQL" изд.Лори 2001г

Однако мне кажется, что усложнение запроса этими операторами приведет к скрытым и сложно обнаруживаемым ошибкам
Ответ отправил: Архангельский Андрей Германович (статус: Практикант)
Ответ отправлен: 10.04.2006, 13:37

Отвечает: Straight
Здравствуйте, TTT!
Есть и IF. Есть и CASE.
http://www.mysql.ru/docs/man/Control_flow_functions.html
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 10.04.2006, 15:03

Отвечает: Jadd
Здравствуйте, TTT!
Есть оба оператора и ни к каким ошибкам это не приведет, не слушай всякие необоснованные "ужастики". Все легко отлаживается. Успехов.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 10.04.2006, 16:52

Отвечает: Игорь Елизаров
Здравствуйте, TTT!
конечно, в SQL есть оба эти оператора.
Оператор Case используется только внутри конструкции Select
а оператор If можно использовать и в хранимых процедурах

Пример оператора case

Select (case when @t=1 then 'единица'
when @t = 2 then 'двойка'
else 'хорошая оценка' end ) as return
Ответ отправил: Игорь Елизаров (статус: 3-ий класс)
Ответ отправлен: 11.04.2006, 00:04


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.30 (beta) от 09.04.2006
Яндекс Rambler's Top100

В избранное