[英]Oracle / SQL Counting Different values from one Column and storing it in a variable
[英]Querying values from one column with different id (Oracle SQL)
我有一个包含这些列的表格
记录编号 | 表格编号 | 价值 |
---|---|---|
1个 | 100 | 'EN' |
1个 | 101 | '英语' |
1个 | 102 | '不' |
2个 | 100 | 'KR' |
2个 | 101 | '韩国' |
2个 | 102 | '叶' |
数据库结构保持原样,我还不能修改,所以我不得不使用这个结构。
我的问题是查询每个表单 ID 的相应值。 我试过这个:
多重子查询
WITH CODE AS
(SELECT * FROM DUMMY_TABLE WHERE FORM_ID = 100),
LANGUAGE AS
(SELECT * FROM DUMMY_TABLE WHERE FORM_ID = 101)
SELECT * FROM <main_query>
我遇到的问题是每条记录有多行,这对我来说似乎不是一个理想的解决方案。
我们有 2 个选择:
/* Using case */ SELECT RecordId, MAX(CASE WHEN FormID = 100 THEN Value END) code, MAX(CASE WHEN FormId = 101 THEN Value END) language, MAX(CASE WHEN FormId = 102 THEN Value END) word FROM t GROUP BY RecordId;
记录 | 代码 | 语言 | 字 -------: |:--- |:-------- |:--- 2 | 韩语 | 韩语 | 叶1 | 中文 | 英语 | 不
/* Using pivot */ select * from ( select RecordId, FormId,Value from t ) pivot ( max(Value) for FormId in (100 code, 101 language, 102 word) ) order by RecordId /
记录 | 代码 | 语言 | WORD -------: |:--- |:-------- |:--- 1 | 中文 | 英语 | 没有 2 | 韩语 | 韩语 | 叶
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.