微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在SQL中的单行内串联多行?

如何解决如何在SQL中的单行内串联多行?

试试这个

  SELECT id ,FruitsAvailable 
  FROM
      (SELECT id , group_concat(Name) as FruitsAvailable 
       FROM  TableFoo
       WHERE id = 1) t

编辑:在db2中,您需要创建函数,然后调用

 CREATE FUNCTION MySchema/MyUDF (
PARCol2 CHAR(5) )
RETURNS VARCHAR(1024)   
LANGUAGE sql 
NOT DETERMINISTIC 
READS sql DATA 
CALLED ON NULL INPUT 
disALLOW ParaLLEL

 BEGIN 
  DECLARE ReturnVal VARCHAR(1024) NOT NULL DEFAULT '';

  FOR CsrC1 AS C1 CURSOR 
      FOR SELECT MyCol1 
             FROM MyTable 
             WHERE MyCol2 = ParCol2 
      DO SET ReturnVal = ReturnVal Concat CsrC1.MyCol1; 
  END FOR;

  RETURN LTRIM(ReturnVal); 
 END  ;

然后在这里

     Select  id, MyUDF(Name) as FruitsAvailable
     From TableFoo 
     where id = 1

解决方法

如何使用SQL将多行连接成一行?我的数据库是DB2

TableFoo
 -------
 Id      Name
 1       Apples
 1       Tomatoes
 1       Potatoes
 2       Banana
 2       Peach

我想要类似的东西

ID       FruitsAvailable
-------------------------
 1       Apples,Tomatoes,Potatoes

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。