2016-03-08 16 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到内部查询 –