你想要的这几个结果,都可以直接使用SQL语句查出,无需循环。
成都创新互联专注于鄢陵网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供鄢陵营销型网站建设,鄢陵网站制作、鄢陵网页设计、鄢陵网站官网定制、小程序设计服务,打造鄢陵网络公司原创品牌,更为您提供鄢陵网站排名全网营销落地服务。
Oracle循环实在PLSQL块中编写:关键字for XXX loop 循环体 end loop;
要对表中的字段进行遍历吗? 用user_tab_cols
begin
for i in (
select column_name from user_tab_cols where table_name=upper('表名'))
loop
dbms_output.put_line(i.column_name);
end loop;
end;
--while循环
procedure loop_while
(
start_value in number,
end_value in number
)
is
current_value number := start_value;
begin
while current_value =end_value
loop
dbms_output.put_line('now number:' || current_value);
current_value:=current_value+1;
end loop;
end loop_while;
如果表中存在数据的话,没差别。
但是如果表中没有数据的话,第一个不会打印任何结果,第二个会打印一个【'学号:'',姓名:''】
***补充:****
更正:
如果表中存在数据的话,第二个的最后一条记录重复出现一次。
但是如果表中没有数据的话,第一个不会打印任何结果,第二个会打印一个【'学号:'',姓名:''】
*************
@@@@补充2:@@@@@
出现重复记录的原因(以两条数据为例):
第一种情况:
1、循环外先fetch一条,发现不是mycur%notfound,进入循环体打印第一条记录。
2、再fetch一条,发现不是mycur%notfound,继续循环打印第二条记录。
3、再fetch一条,发现是mycur%notfound,停止循环。
第二种情况:
1、直接进入循环fetch一条,发现不是mycur%notfound,打印第一条记录。
2、再循环fetch一条,发现不是mycur%notfound,打印第二条记录。
3、再循环fetch一条,发现是mycur%notfound,但程序顺序执行又执行了一遍打印,这个时候因为没有记录产生,变量中存放的就是上一条记录,所以重复打印第二条记录后,退出循环。
@@@@@@@@@@@@@@@@@@@@@@@@@
#######补充3:###########
不要管循环几次(我举例子是为了方便理解,既然理解不了就不要想了)。你想:程序是顺序执行的,第一种情况循环里面的fetch后直接跟的是循环停止条件,这样fetch到底后直接跳出循环。第二种情况fetch后跟的是打印,这样fetch到底后肯定会先打印再停止循环,而打印的结果就是上一次残留的记录,就是最后一条记录。
########################
--
以上,希望对你有所帮助。
只能 select * from dd_20140101 union all select * from dd_20140102 ..... 这种了。 你简单点,也只能对日期进行循环,然后拼SQL语句。变成字符串再执行。