powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вывести разные значения для одинаковых значений столбцов.
14 сообщений из 14, страница 1 из 1
Как вывести разные значения для одинаковых значений столбцов.
    #39542586
benner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дана примерно такая таблица:
ID; CODE; VALUE; LANGUAGE
1; test_code; test; en
2; test_code; тест; ru
3; product_code; RENAULT; en
3; product_code; РЕНО; ru

результатом запроса должно быть следующее

test_code; test; тест
product_code; RENAULT; РЕНО

Каким образом это работает, соединением одной таблицы самой с собой? или внутренним Select'ом?
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542622
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bennerКаким образом это работает, соединением одной таблицы самой с собой?

Обычно это делается PIVOT-ом или уже на клиенте из простой выборки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542648
Рогафип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
benner,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with t as (
select 1 id,  'test_code' code,  'test' value, 'en' language from dual
union all
select 2, 'test_code',  'тест', 'ru' from dual
union all
select 3, 'product_code',  'RENAULT', 'en' from dual
union all
select 4, 'product_code',  'РЕНО', 'ru' from dual
) 
select code||';'|| LISTAGG(value, '; ') WITHIN GROUP (order by code) 
from t
group by code 
order by code desc
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542657
benner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рогафип, Спасибо! если не затруднит, объясни в кратце. Да, нужное получается.
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542659
Рогафип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542725
benner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рогафип, с этим разобрался, благодарю. А возможно без конкатенации обойтись, чтобы каждое поле было соответственно своему столбцу, или у каждого значения свой столбец?
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542742
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
benner,

20902938

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  1  with t as (
  2  select 1 id,  'test_code' code,  'test' value, 'en' language from dual
  3  union all
  4  select 2, 'test_code',  'тест', 'ru' from dual
  5  union all
  6  select 3, 'product_code',  'RENAULT', 'en' from dual
  7  union all
  8  select 4, 'product_code',  'РЕНО', 'ru' from dual
  9  )
 10  select
 11   code
 12  ,max(decode(language,'ru',value)) v_ru
 13  ,max(decode(language,'en',value)) v_en
 14  from t
 15  group by code
 16* order by code desc
SQL> /

CODE         V_RU    V_EN
------------ ------- -------
test_code    тест    test
product_code РЕНО    RENAULT



в факью кажись тоже есть

....
stax
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542755
benner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, зачем такой большой код, если
Код: plsql
1.
select CODE,max(decode(language,'ru',value)) v_ru ,max(decode(language,'en',value)) v_en from LOCALIZATION group by CODE order by CODE desc;


выдает такой же результат. Благодарю, про decode не знал.
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542855
Рогафип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with t as (
select 1 id,  'test_code' code,  'test' value, 'en' language from dual
union all
select 2, 'test_code',  'тест', 'ru' from dual
union all
select 3, 'product_code',  'RENAULT', 'en' from dual
union all
select 4, 'product_code',  'РЕНО', 'ru' from dual
) 
select * from (select code, language, value from t)
pivot (
max(value)
for language in ('en','ru')
)

benner,
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542856
Рогафип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
benner,

Сорри ))))))))

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> with t as (
  2  select 1 id,  'test_code' code,  'test' value, 'en' language from dual
  3  union all
  4  select 2, 'test_code',  'тест', 'ru' from dual
  5  union all
  6  select 3, 'product_code',  'RENAULT', 'en' from dual
  7  union all
  8  select 4, 'product_code',  'РЕНО', 'ru' from dual
  9  )
 10  select * from (select code, language, value from t)
 11  pivot (
 12  max(value)
 13  for language in ('en','ru')
 14  )
 15  /

CODE         'en'      'ru'
------------ --------- ---------
test_code    test      тест
product_code RENAULT   РЕНО
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39542973
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bennerStax, зачем такой большой код, если
Код: plsql
1.
select CODE,max(decode(language,'ru',value)) v_ru ,max(decode(language,'en',value)) v_en from LOCALIZATION group by CODE order by CODE desc;


выдает такой же результат. Благодарю, про decode не знал.

если чесно, то я вопрос про большой код не понял

.....
stax
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39543059
benner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
 with t as ( select 1 id,  'test_code' code,  'test' value, 'en' language from dual
   union all
  select 2, 'test_code',  'тест', 'ru' from dual
   union all
   select 3, 'product_code',  'RENAULT', 'en' from dual
  union all
   select 4, 'product_code',  'РЕНО', 'ru' from dual
   )


Вот это мне не совсем понятно, а если сотни значений, каждое указывать так?
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39543189
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bennerStax,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
 with t as ( select 1 id,  'test_code' code,  'test' value, 'en' language from dual
   union all
  select 2, 'test_code',  'тест', 'ru' from dual
   union all
   select 3, 'product_code',  'RENAULT', 'en' from dual
  union all
   select 4, 'product_code',  'РЕНО', 'ru' from dual
   )


Вот это мне не совсем понятно, а если сотни значений, каждое указывать так?

не надо, ето тестовые данные, аля Ваша табличка LOCALIZATION, чтоб ее не создавать

with t as ...,

t ето (не знаю как правильно) "виртуальная" табличка/вью, тестовые данные

.....
stax
...
Рейтинг: 0 / 0
Как вывести разные значения для одинаковых значений столбцов.
    #39543565
Рогафип
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
)))
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вывести разные значения для одинаковых значений столбцов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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