【发布时间】:2013-09-07 17:11:48
【问题描述】:
我有以下表格:
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
我试图做的是用 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。看到这个:stackoverflow.com/questions/1677645/…
-
@vijay 我认为 PIVOT 在 oracle i9 中不可用。
-
对不起,我认为是 MS-SQL SERVER。
-
我从未在 Oracle 上工作过。我通过谷歌搜索得到这个它可能对你有帮助:club-oracle.com/forums/…