如何在STored过程中创建循环并创建一个字符串

时间:2014-12-23 11:35:42

标签: mysql sql-server stored-procedures

我有一个包含id,Name,Forid

等数据的表

现在我想在单个变量中获取所有名称,像这样a,b,c

但它的forid匹配

EX: -

Id   Name    forid
1     a       1
2     b       1
3     c       2

当forid为1时,sp将返回a,b

如果sql功能在那里它还可以,但如何制作这个请指导我

1 个答案:

答案 0 :(得分:1)

使用类似的东西。这是oracle中的过程,但在SQL服务器中,我认为您不需要更多更改

create or replace PROCEDURE p (x in number) AS
    z table_name.Column_name%TYPE;
    result varchar(100):='';
    cursor take is select Name from TABLE_NAME where for_id=x;
    begin
    open take;
    loop
      fetch take into z; 
      result:= result|| z;
      exit when take%notfound;
    end loop;
    close take;
    dbms_output.put_line(result);
  END p;