【发布时间】:2017-10-10 06:01:08
【问题描述】:
您能否给我以下代码的替代查询。
PLSQL 代码
我已经使用 WITH 子句变量 TEMP 在 UNION ALL 查询中使用了两个地方,有助于减少在 UNION ALL 查询中只使用一次 TEMP 变量,
DECLARE
CURSOR CUR Is
WITH TEMP AS
(SELECT 1 ONE FROM DUAL UNION ALL SELECT 2 ONE FROM DUAL)
SELECT RNO, NAME FROM STUDENT, TEMP T WHERE RNO = T.ONE
UNION ALL
SELECT RNO, NAME FROM STUDENT1, TEMP T WHERE RNO = T.ONE;
BEGIN
FOR I IN CUR LOOP
DBMS_OUTPUT.PUT_LINE(I.RNO||':'||i.name);
END LOOP;
END;
表创建脚本
create table student1(rno number,name varchar2(30))
insert into student1 values(1,'chidam1')
insert into student1 values(2,'ram1')
insert into student1 values(3,'divi1')
create table student(rno number,name varchar2(30))
insert into student values(1,'chidam')
insert into student values(2,'ram')
insert into student values(3,'divi')
【问题讨论】:
-
我们可以看到你的代码做了什么:你需要解释它的目的。在您告诉我们您想要实现的目标之前,我们无法提供替代实施方案。
标签: oracle plsql oracle11g with-statement