Oracle 我想要PL/SQL中的水平格式的结果

Oracle 我想要PL/SQL中的水平格式的结果,oracle,plsql,oracle11g,Oracle,Plsql,Oracle11g,我有以下代码: DECLARE V_RES varchar2(100); BEGIN FOR I IN 1..5 LOOP FOR J IN 65..70 LOOP V_RES := V_RES ||' '||I||CHR(J); END LOOP; DBMS_OUTPUT.PUT_LINE(V_RES); V_RES :=''; END LOOP; END; / 结果是: 1A 1B 1C 1D 1E 1F 2A 2B 2C 2D 2E 2

我有以下代码:

DECLARE
  V_RES varchar2(100);
BEGIN
  FOR I IN 1..5 LOOP
    FOR J IN 65..70 LOOP
      V_RES := V_RES ||' '||I||CHR(J);
    END LOOP;
    DBMS_OUTPUT.PUT_LINE(V_RES);
  V_RES :='';
  END LOOP;
END;
/
结果是:

1A 1B 1C 1D 1E 1F
2A 2B 2C 2D 2E 2F
3A 3B 3C 3D 3E 3F
4A 4B 4C 4D 4E 4F
5A 5B 5C 5D 5E 5F
但我希望结果采用这种格式:

1A  2A  3A
1B  2B  3B
1C  2C  3C

您只需要交换循环的字符和数字的顺序;从字面上讲,只需将这两个
语句替换为
语句就足够了:

DECLARE
  V_RES varchar2(100);
BEGIN
  FOR J IN 65..70 LOOP
    FOR I IN 1..5 LOOP
      V_RES := V_RES ||' '||I||CHR(J);
    END LOOP;
    DBMS_OUTPUT.PUT_LINE(V_RES);
  V_RES :='';
  END LOOP;
END;
/

PL/SQL procedure successfully completed.

 1A 2A 3A 4A 5A
 1B 2B 3B 4B 5B
 1C 2C 3C 4C 5C
 1D 2D 3D 4D 5D
 1E 2E 3E 4E 5E
 1F 2F 3F 4F 5F
如果您只想要1A到3C,如您在问题中所示,您将更改每个循环的上限:

  FOR J IN 65..67 LOOP
    FOR I IN 1..3 LOOP
得到

PL/SQL procedure successfully completed.

 1A 2A 3A
 1B 2B 3B
 1C 2C 3C

欢迎来到堆栈溢出!请浏览、和部分,了解此网站的工作原理,并帮助您改进当前和未来的问题,这可以帮助您获得更好的答案。那么您想交换您的循环吗?为什么预期结果只有三行和五列而不是五行和五列?非常感谢Alex Poole