【问题标题】:PL/SQL LOOP increment unpredictable result [duplicate]PL/SQL LOOP 增量不可预测的结果 [重复]
【发布时间】:2016-03-16 11:17:38
【问题描述】:

只是尝试使用循环将值插入表中。

for循环的代码是next

DECLARE
ID_src number;
BEGIN
  FOR i IN 1..10000
  LOOP
    ID_src := i;
       INSERT INTO src_facts values (ID_src);
  END LOOP;
END;

在我看来输出应该是:

1
2
3
...
10000

但我查看了不可预知的结果。它是:

你能解释一下我做错了什么吗?

【问题讨论】:

  • 你的意思是表格数据不是按1,2,3,...,10000排序的吗?没有理由应该或应该按排序顺序返回 - 除非您使用 ORDER BY 明确对其进行排序。在 SQL Developer 中,您可以单击列标题对数据进行排序。表格本身并没有排序。

标签: sql oracle plsql oracle-sqldeveloper


【解决方案1】:

结果是不可预测的。你只需要order by:

select *
from src_facts
order by id_src;

SQL 表代表无序 集合。除非包含ORDER BY,否则无法保证结果集中的行顺序。

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多