1.这是一种sql写法,忘了在什么地方看到的,觉得不错。
SELECT REVERSE(sys_connect_by_path(rpad(REVERSE(to_char(rownum * lv)), 2) || '=' ||
rownum || '*' || lv,
' ')),
lv
FROM (SELECT LEVEL lv FROM dual CONNECT BY LEVEL < 10)
WHERE lv = 1
CONNECT BY lv + 1 = PRIOR lv;
2.写函数,和存储过程类似
CREATE OR REPLACE FUNCTION nine_nine(v_num NUMBER) RETURN VARCHAR2 IS
v_text VARCHAR2(32767);
BEGIN
IF v_num <= 0
THEN
RETURN '数字不能小于等于0.';
END IF;
FOR i IN 1 .. v_num
LOOP
FOR j IN 1 .. i
LOOP
v_text := v_text || i || ' * ' || j || ' = ' || i * j || ' ';
END LOOP;
v_text := v_text || chr(10);
END LOOP;
RETURN v_text;
END nine_plus_nine;