У меня есть следующие таблицы:
1. UNIT_OF_MEASURE
: Колонки: UNIT_OF_MEASURE, CODE, DESCRIPTION, VERSION
2. UNIT_OF_MEASURE_TRANS
: колонны: UNIT_OF_MEASURE_ID_LANGAUGE_ID, DESCRIPTION
3. LANGUAGE
: колонны: LANGUAGE_ID, LANGUAGE_NAME
Транспонирования приведенных строк в Oracle 9i
Что я m пытался показать все единицы описаний мер на 5 языках. Я успешно сделал это, но как список, то есть все описания в одном столбце повторяются на разных языках.
SELECT
uomt.description,
l.language_name
FROM unit_of_measure_trans uomt
INNER JOIN language l ON (uomt.language_id = l.language_id)
WHERE
l.language_id IN (25, 22, 82, 34, 27, 52, 10, 90)
order by language_name;
`
Теперь мне нужно улучшить это, чтобы показать каждую группу описаний в отделенной колонке на основе языка. Таким образом, у меня будет пять столбцов, содержащих одну группу описаний единиц измерения на разных языках. Я попробовал slef-join
, но у меня были декартовые результаты продукта, не уверен, что union all
решит проблему. Я просмотрел несколько сообщений о транспозиции здесь, я боюсь, что не смогу применить их к моему делу.
Что вам нужно, PIVOT. Смотрите: http: //stackoverflow.com/questions/1677645/using-pivot-in-sql-server-2008? Rq = 1 –
@vijay Я не думаю, что PIVOT доступен в oracle i9. – Hawk
жаль, что я думал MS-SQL SERVER. –