大家好 :) 我在 Oracle 10g 中有这个查询:
SELECT
LAST_VALUE(SERIAL_ID) OVER (),
LAST_VALUE(COLOR) OVER ()
FROM (
SELECT SERIAL_ID, COLOR FROM TABLE_1
UNION ALL
SELECT SERIAL_ID, COLOR FROM TABLE_2
) WHERE SERIAL_ID = <PUT UNIQUE ID TO TABLE_1 and TABLE_2 HERE>
TABLE_1
并TABLE_2
具有完全相同的架构,但数据不同。SERIAL_ID 有一个唯一约束,但在两个表中都可以找到一个 SERIAL_ID。
到目前为止,当 中有匹配项时,LAST_VALUE(COLOR) OVER ()
总是从TABLE_2
over返回值。这就是我想要的。TABLE_1
TABLE_2
我在文档中找不到告诉我订单UNION ALL
将被保留的信息。在我看来UNION ALL
是来自set realm,我不知道 Oracle 是否保留以未定义顺序呈现此 set 的权利。
我想确保订单保持不变。
此致