Chr*_*ark 3 sql oracle oracle11g
我有一个这种结构的表:
我使用这个脚本来查询请求:
SELECT D.DELIVERY_REQUEST_ID AS "REQUEST_ID",
'Delivery' AS "REQUEST_TYPE"
FROM DELIVERY_REQUEST D
UNION
SELECT I.INVOICE_REQUEST_ID AS "REQUEST_ID",
'Invoice' AS "REQUEST_TYPE"
FROM INVOICE_TRX I
Run Code Online (Sandbox Code Playgroud)
结果将是这样的:
REQUEST_ID | REQUEST_TYPE
__________________|____________________
|
1 | Delivery
1 | Invoice
2 | Delivery
2 | Invoice
Run Code Online (Sandbox Code Playgroud)
我想要做的是在开头用一个唯一的键(应该是一个INT和一个自动数字)查询(或创建一个视图),如下所示:
ID | REQUEST_ID | REQUEST_TYPE
____|________________|____________________
| |
1 | 1 | Delivery
2 | 1 | Invoice
3 | 2 | Delivery
4 | 2 | Invoice
Run Code Online (Sandbox Code Playgroud)
先感谢您.
首先,当您添加字符串时使用UNION ALL,因此Oracle不会尝试进行不同的排序.
要实际回答问题,您可以使用分析函数ROW_NUMBER()
select row_number() over ( order by request_id, request_type ) as id
, a.*
from ( select d.delivery_request_id as request_id
, 'delivery' as request_type
from delivery_request d
union all
select i.invoice_request_id as request_id
, 'invoice' as request_type
from invoice_trx i
) a
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2079 次 |
最近记录: |