powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как правильно написать запрос
9 сообщений из 9, страница 1 из 1
Как правильно написать запрос
    #40028835
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как написать запрос, который
В зависимости от поля во внешней таблицы (potential) выбирает соответсвующую колонку во внутренней таблицы

Код: plsql
1.
2.
3.
4.
5.
Select 
csp.id, 
(Select case when csp.product='Рыбы' then pl.name1 )
     when csp.product='Мясо' then pl.name2 end as kind from potential pl  )
 from potential csp
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028842
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> ed
Wrote file afiedt.buf

  1  with  potential (product,name1,name2) as (
  2  select 'Рыбы','Карась','' from dual union all
  3  select 'Мясо','Корова','Говядина' from dual  union all
  4  select 'Птица','Пица','Карамель' from dual
  5  )
  6* select product,decode(product,'Рыбы',name1,'Мясо',name2,'???') txt from potential
SQL> /

PRODU TXT
----- --------
Рыбы  Карась
Мясо  Говядина
Птица ???




.....
stax
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028848
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

причем тут decode
У меня две разные таблицы potential и допустим not_potential

Select
csp.id,
(Select case when csp.product='Рыбы' then pl.name1 )
when csp.product='Мясо' then pl.name2 end as kind from not_potential pl )
from potential csp
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028850
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

вы выбираете product и name1 из одной таблицы а у меня они в разных
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028854
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,
case + inline select
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028858
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Egoр, получается два case нужно будет и в каждом case + селект из внутренний таблицы
По другому нельзя?
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028863
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Разобрался можно было записать вот так

Select * from
(
Select
case when ....then ...
when .....then .....end as ....
from t1
where t1.inn=t2.inn
) as

from t2
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028866
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
Stax,

вы выбираете product и name1 из одной таблицы а у меня они в разных


откуда мне знать

приведите тестовые данные и что получить

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  1  with  potential (id,product) as (
  2  select 1,'Рыбы' from dual union all
  3  select 2,'Мясо' from dual  union all
  4  select 4,'Птица' from dual
  5  )
  6   ,table2 (name1,name2) as (select 'кг.','шт,' from dual)
  7  select
  8   id
  9   ,product
 10   ,(select decode(product,'Мясо',name1,'Рыбы',name2,'???') txt from table2 -- where...
 11  ) txt
 12* from potential p
SQL> .
SQL> .
SQL> /

        ID PRODU TXT
---------- ----- ---
         1 Рыбы  шт,
         2 Мясо  кг.
         4 Птица ???




....
stax
...
Рейтинг: 0 / 0
Как правильно написать запрос
    #40028868
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

case [expr]
when [value1] then [inline1]
when [value2] then [inline2]
...
else then [inlineN]
end

>> По другому нельзя?
какие требования к "другому"?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как правильно написать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]