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 
     
  • 相关阅读:
    Kotlin 基础
    ViewPager2
    8086-debug指令
    (四)主控板改IP,升级app,boot,mac
    (三)主控板生级uboot与内核
    (四)linux网络编程
    (七)嵌入式系统异常程序远程定位
    (六)ARM状态寄存器-PSR
    (五)stm32工程代码HardFault异常查错调试方法
    (十)makefile
  • 原文地址:https://www.cnblogs.com/xiaonanmu/p/4828076.html
Copyright © 2011-2022 走看看