Вопрос № 39886: Скажите ,пожалуйста, есть ли в SQL оператор типа IF или, что еще лучше CASE. Мне нужно написать запрос, в котором в зависимости от значения поля это значение умножалось на разные числа....
Вопрос № 39.886
Скажите ,пожалуйста, есть ли в SQL оператор типа IF или, что еще лучше CASE. Мне нужно написать запрос, в котором в зависимости от значения поля это значение умножалось на разные числа.
Отправлен: 10.04.2006, 13:26
Вопрос задала: TTT (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Архангельский Андрей Германович
Здравствуйте, TTT!
В SQL-99 есть операторы Case и IF, но не все СУБД их поддерживают
Подробное описание смотри в Мартина Грабера "SQL" изд.Лори 2001г
Однако мне кажется, что усложнение запроса этими операторами приведет к скрытым и сложно обнаруживаемым ошибкам
Отвечает: 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