2016-03-08 47 views
0

我嘗試使用ORDER BY甲骨文解碼功能ORDER BY內解碼Oracle函數

編譯器裏面說缺少右括號

DECODE(controlNumber, NULL, myOldNUmber, (SELECT myNewNumber FROM tableA A, tableB B WHERE A.control_id = B.control_id AND A.other_id = B.other_id)) AS finalnumber, 

看來,這是相同的查詢不明白爲什麼ORDER BY是這裏不接受:

DECODE(controlNumber, NULL, myOldNUmber, (SELECT myNewNumber FROM tableA A, tableB B WHERE A.control_id = B.control_id AND A.other_id = B.other_id ORDER BY createdTime)) AS finalnumber, 
+3

爲什麼你需要ORDER BY?你可以使用ony的'scalar subqury'作爲函數的參數。標量子查詢是最多可以返回1行的查詢。那麼爲什麼你需要訂購1行? – krokodilko

+0

我有很多服務存儲在我的桌子上,我需要執行和記錄的最後一項服務。 –

回答

2

我不能現在來測試,但請儘量...

DECODE(controlNumber, NULL, myOldNUmber, (SELECT myNewNumber FROM (SELECT myNewNumber FROM tableA A, tableB B WHERE A.control_id = B.control_id AND A.other_id = B.other_id ORDER BY createdTime) WHERE rownum=1) AS finalnumber 
+0

太棒了!我會測試。 –

+0

無法訪問內部子查詢中的tableB可能是因爲我正在把它變成兩個表UNION –

+0

任何其他內部查詢的工作原理我只是不能訪問tableB到內部查詢 –