我有一个视图(oracle DB),想创建另一个带有附加虚拟记录的视图。一个人在这里工作的方式告诉我的方法虽然很简单,但是很有效:
#VALUE!
有没有办法避免每条记录建立一个联合,而是与整个记录集建立一个联合?
谢谢。
答案 0 :(得分:0)
您可以使用分层查询来添加请求的虚拟行数(5行以下):
select object_id, object_name from user_objects
union all
select level, 'DUMMY '||lpad(level, 2, '0') from dual connect by level <= 5;
这给了我们
OBJECT_ID OBJECT_NAME
---------- ---------------------
4665358 SOME_OBJECT
4665359 SOMETHING
... ...
1 DUMMY 01
2 DUMMY 02
3 DUMMY 03
4 DUMMY 04
5 DUMMY 05
答案 1 :(得分:0)
如果您接受定义TYPE
的负担,则可以使用NESTED TABLES
在单个查询中收集数据
CREATE TYPE C AS OBJECT (
id_num INT,
name VARCHAR2(10),
trans_date DATE)
/
CREATE TYPE TC AS TABLE OF C
/
SELECT id_num, name, trans_date
FROM TABLE(TC(
--- your data here
C(1, 'aaaa', sysdate),
C(2, 'bbbb', DATE'2019-01-26'),
C(3, 'cccc', DATE'2018-01-01')
---
));
ID_NUM NAME TRANS_DATE
---------- ---------- -------------------
1 aaaa 26.01.2019 12:27:25
2 bbbb 26.01.2019 00:00:00
3 cccc 01.01.2018 00:00:00