Oracle11g 在连接的列上使用Order By
我有一个要求,表中的一些列必须分组在一起才能生成查询结果。示例查询如下所示:Oracle11g 在连接的列上使用Order By,oracle11g,Oracle11g,我有一个要求,表中的一些列必须分组在一起才能生成查询结果。示例查询如下所示: SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4) FROM MY_TABLE GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO'); 我有一个例子,用户在前端应用程序中以逗号分隔的顺序指定ORDERBY位
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO');
我有一个例子,用户在前端应用程序中以逗号分隔的顺序指定ORDERBY位置。例如:1、2和列索引的不同组合,具体取决于用户输入
我正在使用Oracle11g作为数据库
我需要对用户传递的列编号执行order by。例如:
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO')
ORDER BY 1, 2; -----------<<< How should I be able to add the order by clause here dynamically
请任何人都可以指导我如何在这个查询中按部分添加订单
提前感谢 您可以通过两种方式实现这一点
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO')
ORDER BY COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
;
SELECT * FROM (
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO'))
ORDER BY 1
您可以通过两种方式实现这一点
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO')
ORDER BY COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
;
SELECT * FROM (
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO'))
ORDER BY 1