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 
     
  • 相关阅读:
    ES5新特性:理解 Array 中增强的 9 个 API
    ios
    Jquery异步 Deferred Object
    ES5中新增的Array方法详细说明
    Chart
    Angular常用语句
    vticker.js--垂直滚动插件
    <css系列>之css--float总结
    理解boot.img与静态分析Android/linux内核
    理解竞争条件( Race condition)漏洞
  • 原文地址:https://www.cnblogs.com/xiaonanmu/p/4828076.html
Copyright © 2011-2022 走看看