oracle - Oracle:将行转换为列以输出连接表查询
问题描述
SELECT ABC.ID, ABC.URL1, ABC.URL2,
DECODE(ABC.TEXT,'URL3' ,ABC.URL),
DECODE(ABC.TEXT,'URL4',ABC.URL),
DECODE(ABC.TEXT,'URL5',ABC.URL),
DECODE(ABC.TEXT,'URL6',ABC.URL),
DECODE(ABC.TEXT,'URL7',ABC.URL),
DECODE(ABC.TEXT,'URL8',ABC.URL),
DECODE(ABC.TEXT,'URL9',ABC.URL)
FROM (SELECT * FROM (SELECT t1.ID, t2.URL1, t2.URL2,
t4.TEXT AS TEXT, t3.URL AS URL
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id=t2.id2
LEFT JOIN table4 t3 ON t3.id=t2.id2
LEFT JOIN table4 t4 ON t3.id3=t4.id
WHERE t1.id='VALUE'))ABC;
以及相应 columnst1 中这些 url 的值
解决方案
下面的代码对我有用:
SELECT DEF.ID, DEF.URL1, DEF.URL2,
MAX(DECODE(ABC.TEXT,'URL3' ,ABC.URL)) URL3,
MAX(DECODE(ABC.TEXT,'URL4',ABC.URL)) URL4,
MAX(DECODE(ABC.TEXT,'URL5',ABC.URL)) URL5,
MAX(DECODE(ABC.TEXT,'URL6',ABC.URL)) URL6,
MAX(DECODE(ABC.TEXT,'URL7',ABC.URL)) URL7,
MAX(DECODE(ABC.TEXT,'URL8',ABC.URL)) URL8,
MAX(DECODE(ABC.TEXT,'URL9',ABC.URL)) URL9
FROM (SELECT * FROM (SELECT t1.ID, t2.URL1, t2.URL2,
t4.TEXT AS TEXT, t3.URL AS URL
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id=t2.id2
LEFT JOIN table4 t3 ON t3.id=t2.id2
LEFT JOIN table4 t4 ON t3.id3=t4.id
WHERE t1.id='VALUE')ABC) DEF
GROUP BY DEF.ID, DEF.URL1, DEF.URL2;
推荐阅读
- reactjs - 无法创建反应应用程序,有线错误?
- python - 循环期间打印有问题
- r - R中带有向量和矩阵的自定义函数
- c - 我的 C 代码不起作用,但另一个与我类似的示例起作用。为什么?
- reactjs - 如何在 React Hooks 中使用自定义 Hooks 发送请求
- javascript - 哪个正则表达式可以选择 html 属性及其 UUID 类似值
- tensorflow - tf.keras.layers.LSTMCell VS tf.compat.v1.nn.dynamic_rnn
- alexa - 使用相同帐户在 echo dot 中工作时无法在智能手机中调用 alexa 技能
- java - 如何在while循环中获取前一个数字并将其加倍?爪哇
- javascript - JavaScript 事件侦听器的函数在嵌套循环之外不起作用