设数据库中的一个字段和它的值
ziduan
1
2
3
4
5
select结果显示
ziduan
1,4,7,10
2,5,8
3,6,9
4,7
5,8
也就是说,值加3但不大于10得值都显示出来。
这个SQL应该怎么写呢?
请各位指教!谢谢!

解决方案 »

  1.   

    这种情况只用SQL语句来实现恐怕不方便吧.
      

  2.   

    SQL> CREATE TABLE test(ziDuan NUMBER);Table createdSQL> INSERT INTO test(ziDuan) VALUES('1');1 row insertedSQL> INSERT INTO test(ziDuan) VALUES('2');1 row insertedSQL> INSERT INTO test(ziDuan) VALUES('3');1 row insertedSQL> INSERT INTO test(ziDuan) VALUES('4');1 row insertedSQL> INSERT INTO test(ziDuan) VALUES('5');1 row insertedSQL> create or replace function fn_test(pZiDuan NUMBER) return varchar2 IS
      2    v_Result varchar2(100);
      3    i_item   PLS_INTEGER;
      4  begin
      5    i_item:= pZiDuan;
      6  
      7    LOOP
      8      i_item:= i_item + 3;
      9      EXIT WHEN i_item > 10;
     10      v_Result:= v_Result || to_char(i_item) || ',';
     11    END LOOP;
     12    v_Result:= trim(',' FROM v_Result);
     13  
     14    RETURN v_Result;
     15  end fn_test;
     16  /Function createdSQL> select ziduan, fn_test(ZiDuan) newItem from test;    ZIDUAN NEWITEM
    ---------- --------------------------------------------------------------------------------
             1 4,7,10
             2 5,8
             3 6,9
             4 7,10
             5 8