sql - 将虚拟记录添加到视图的优雅方式?
问题描述
我有一个视图(oracle DB),想用额外的虚拟记录创建另一个。工作中的一个人告诉我的方式相当不雅但有效:
select * from SOME_VIEW
union all select a0,b0,c0,d0... from dual
union all select a1,b1,c1,d1... from dual
...
有没有办法避免为每条记录建立一个联合,而是与整个记录集建立一个联合?
谢谢。
解决方案
您可以使用分层查询来添加请求的虚拟行数(低于 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
推荐阅读
- web - 从 3270 大型机屏幕调用网站自动从大型机传递数据
- php - 使用 ajax 调用的 php 脚本重定向到另一个页面
- c# - 如果 JSON.NET 中的值为 null 或空格,则防止序列化
- angular - 如何在Angular 5中初始化Material Design的mat-slide-toggle?
- php - 使用php脚本定位ip所在国家/地区的最佳网站是什么
- javascript - localStorage.getItem(...).key 不是函数
- oracle-apex-5.1 - Oracle APEX 图标列表
- rabbitmq - 如何在不使用事务的情况下使用 RabbitMQ 和 Spring AMQP 实现至少一次交付保证?
- ios - Swift 4 Dictionary [String : AnyObject] 按字母顺序按键排序
- ios - L2CAP 通道数据传输