1
我有一個要求,其中表中的某些列必須組合在一起以生成查詢結果。樣本查詢,如下所示:在連接列上使用Order By
SELECT COLUMN1 || '^' || COLUMN2 || '^' || DECODE(COLUMN3,'Y', 'YES', 'NO') || '^' || SUM(COLUMN4)
FROM MY_TABLE
GROUP BY COLUMN1, COLUMN2, DECODE(COLUMN3, 'Y', 'YES', 'NO');
我有其中通過在從前端應用程序以逗號分隔的序列用戶指定通過的位置的順序的情況。例如:1,2和列索引的不同組合取決於用戶輸入。
我正在使用oracle 11g作爲數據庫。
我需要對用戶傳遞的列號執行排序。例如:
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
我得到以下錯誤上述查詢的執行:
Error starting at line 1 in command:
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
Error at Command Line:4 Column:16
Error report:
SQL Error: ORA-01785: ORDER BY item must be the number of a SELECT-list expression
01785. 00000 - "ORDER BY item must be the number of a SELECT-list expression"
請任何人都可以指導我如何我可以參加這個查詢添加順序!!!!! !
在此先感謝!