zoukankan      html  css  js  c++  java
  • 多条记录的同一字段组合成一个字符串 FOR XML PATH

    stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'')

    这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。
    例如表
    fieldname
    -----------
    AAA
    BBB
    CCC
    串联之后就是字符串: AAA,BBB,CCC
    for xml path是SQL Server 2005以后版本支持的一种生成XML的方式。具体如何使用,请参考联机丛书。
    stuff函数的作用是去掉字符串最前面的逗号分隔符。

    ---------------------------------------------------------------

    在sql server 2000中只能用函数解决
    create table tb(id int, value varchar(10)) 
    insert into tb values(1, 'aa'
    insert into tb values(1, 'bb'
    insert into tb values(2, 'aaa'
    insert into tb values(2, 'bbb'
    insert into tb values(2, 'ccc'
    go 
    --1. 创建处理函数 
    CREATE FUNCTION dbo.f_strUnite(@id int
    RETURNS varchar(8000) 
    AS 
    BEGIN 
        DECLARE @str varchar(8000) 
        SET @str = '' 
        SELECT @str = @str + ',' + value FROM tb WHERE id=@id 
        RETURN STUFF(@str, 1, 1, ''
    END 
    GO 
    -- 调用函数 
    SELECt id, value = dbo.f_strUnite(id) FROM tb GROUP BY id 
     
    go
     
    id          value      
    ----------- ----------- 
    1          aa,bb 
    2          aaa,bbb,ccc 
     
  • 相关阅读:
    杭电2063 过山车 匈牙利算法
    杭电2023 平均成绩
    leveldb性能分析
    linux下libreoffice安装测试
    iptables配置vsftp访问
    vsftp访问异常
    mysql二进制安装
    vi命令
    mysql配置优化
    rsync 配置
  • 原文地址:https://www.cnblogs.com/xiaonanmu/p/4828076.html
Copyright © 2011-2022 走看看