![]() |
|
Модераторы: LSD |
![]()
|
|
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
В Аксесе есть функция Iif(выражение;p1;p2) (если выражение - истина, то p1, иначе p2)
Есть ли подобная функция в Sql Plus и какой ее синтаксис? |
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
См. decode и case
-------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
А синтаксис какой?
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Вверху страницы есть ссылка на документацию по Oracle. Там есть описание синтаксиса. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
-------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
А функция нахождения длины строки имеется?
Len, Length - |
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
Кто её знает... Посмотри тут -------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
SELECT supplier_id,
decode(trunc ((supplier_id - 1) / 10), 0, 'category 1', 1, 'category 2', 2, 'category 3', 'unknown') result FROM suppliers; In this example, based on the formula: trunc ((supplier_id - 1) / 10 The formula will evaluate to 0, if the supplier_id is between 1 and 10. The formula will evaluate to 1, if the supplier_id is between 11 and 20. The formula will evaluate to 2, if the supplier_id is between 21 and 30. А если мне надо 0, если [0,3) 1, если [3,7] 2, если (7,19] 3, если (19,22) ... Разве нет нормальных функций в которых можно сразу условие задавать? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
В PL/SQL можно, в SQL нет. Если у тебя хитрые запросы, пиши на PL/SQL свою функцию. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Sqlninja |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Не понял. А про CASE что, все забыли?
-------------------- It's better to burn out than to fade away. |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Так CASE ему уже советовали, но он его чем-то не устроил. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Не хочется открывать новую тему - какая функция конвертирует Null в 0
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Неопытный |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
SELECT id,
decode(id, 0,1, 1, 2, 3,4, ... ... //Всего пусть 1000 условий ) result FROM suppliers; Oracle говорит слишком много аргументов, как быть? Может так decode(id,0,1 decode(id,1,2, decode(id,2,3,...) ) ) Сколько уровней вложенности допускается? Может можно как то по другому? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Вообще-то если у вас 100 условий которые надо проверить - то надо менять логику работы.
Возможно ввести таблицу в которую забить соответсвия. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |