![]() |
|
Модераторы: LSD |
![]()
|
|
| tvik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Всем, привет!!
не подскажете, можно ли в качесчтве аргумента функции decode (pl\sql) использовать select ну типа так:
то есть если значение cd.f_id лежит в диапозоне, возвращаемым селектом select fd_id from f form where f.code_name='AR'),count(cd.cd_id)), то считаем эту строку Если так сделать нельзя, то как можно? Спасибо заранее за любые комментарии |
|||
|
||||
| TicTak |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 2.3.2005 Репутация: нет Всего: 1 |
Decode не смотрит на диапазон, ему нужно конкретное значения. И не пойму зачем ты max прилепил? Если я правильно понял что ты хочеш, то попробуй так:
|
|||
|
||||
| tvik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
max затем, что select большой и нужно группировка, и чтобы не толкать эту лабуду в group by использую max
то есть в decode() нельзя использовать ни like,in - плохо (((, а есть какая-нить функция типа decode, в которой можно сравнивое выражение задавать, типа decode(temp,'hell%','hello word',null) |
|||
|
||||
| TicTak |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 2.3.2005 Репутация: нет Всего: 1 |
||||
|
||||
| tvik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Понятненько, а еще такой вопросик:
можно ли сделать конкатенацию результатов двух селектов, именно результатов что-то типа:
|
|||
|
||||
| DimW |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
tvik, контсрукция которую ты хотел использовать в первом топе в полне допустима:
Но в decode ты можешь использовать только конкретные сравнения, ни каких диапозонов сравнить не удастся. И ты получишь эксепшен если селект в декоде вернет больше одного значения, что судя по твоему примеру гарантировано:
case - более гибкая конструкция:
Но все та же потенциальная бага в случае если селекты в кейсе вернут больше одной строки. Если тебе всетаки нужно делать сравнение с несколькими значениями, то стоит сменить тактику... Добавлено @ 13:15
если я тебя правельно понял то тебе нужно это:
Это сообщение отредактировал(а) DimW - 13.6.2007, 13:17 |
||||||||||
|
|||||||||||
| tvik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
DimW, спасибо все понятно, ты всегда мне помогаешь
только мне нужно не union, а именно join чтобы 1 и 2 были не подряд в строках, а в столбцах Но что-то такое ощущение, что то, что я хочу сделать какая-то ерунда. Выведите из заблуждения пожалуйста |
|||
|
||||
| DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
если проблема сджоинить вместо таблицы селект то вот:
Добавлено @ 14:20 ни join ни union к конкитинации не имеет ни какова отнашение, я просто попытался понять что ты имел ввиду... конкитинация это склеивание значений:
Это сообщение отредактировал(а) DimW - 13.6.2007, 14:21 |
||||||
|
|||||||
![]()
|
| Правила форума "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. |