集合的内容如下:
字段:name  
内容: a    
内容: b
内容: c 如何用一个SQL得到一条记录如下:
name 
a,b,c

解决方案 »

  1.   

    通过自定义函数完成
    CREATE OR REPLACE FUNCTION get_name(temp_id number)
    RETURN VARCHAR2
    IS
    Col_name VARCHAR2(4000);
    BEGIN
    FOR cur IN (SELECT name FROM t=temp_id ) LOOP
    Col_name := Col_name||cur.name;
    END LOOP;
    RETURN Col_name;
    END;select get_name(id) from t;
      

  2.   

    谢谢! CREATE OR REPLACE FUNCTION get_name(temp VARCHAR2)
    RETURN VARCHAR2
    IS
    Col_name VARCHAR2(4000);
    BEGIN
    FOR cur IN (SELECT name FROM t where name in (temp )) LOOP
    Col_name := Col_name||cur.name;
    END LOOP;
    RETURN Col_name;
    END;t中有数据
    字段 name 
    内容 'a','b','c'
    select get_name(name) from t;但是得不到值
    [FOR cur IN (SELECT name FROM t where name in (temp )) LOOP] 中的temp是否要做处理?
    因为他认为进来的是一个字符串'a','b','c' 而不是一个'a','b','c'集合
      

  3.   

    这位朋友使用了循环,也可以使用其他的方法,如动态sql,
    具体看:http://hi.baidu.com/zhao%5Fe893/blog/item/1e18224eec57c8cad1c86a3f.html