zoukankan      html  css  js  c++  java
  • MSSQL将多行单列变一行一列并用指定分隔符分隔,模拟Mysql中的group_concat

    -- 将多行记录(只能一个列)用指定分隔符分隔
    IF(OBJECT_ID('sp_RowsChangeClosBySplit',N'P') IS NOT NULL)
        DROP PROC sp_RowsChangeClosBySplit
    GO
    CREATE PROC sp_RowsChangeClosBySplit
    @table nvarchar(50),            -- 表名
    @field nvarchar(50),            -- 要拼接的字段
    @split varchar(10)=',',            -- 分隔符
    @where nvarchar(500)=''    -- 条件
    AS
    BEGIN 
    DECLARE @sql NVARCHAR(1000)
    SET @sql='select TOP 1 stuff((select '''+@split+'''+convert(varchar(50),'+@field+') from '+@table+' '+@where+' FOR XML PATH('''')), 1, 1, '''') as cols from '+@table+' group by '+@field
    PRINT @sql
    EXEC sp_executesql @sql
    END
     

    调用:

    EXEC dbo.sp_RowsChangeClosBySplit @table = N'pro_Household', -- nvarchar(50)
        @field = N'ID', -- nvarchar(50)
        @split = ',', -- varchar(10)
        @where = N'where id < 10' -- nvarchar(500)

    分割后:结果集:

    普通查询:

    SELECT ID FROM dbo.pro_Household WHERE ID<10  

    分割钱:结果集

    中山赢友网络科技有限公司(http://www.winu.net/)承接IOS、Android、Window Phone 8+、Window 10 App应用开发,IOS、Android、Window Phone 8+游戏开发,.NET/PHP软件系统开发,HTML5网站、游戏、微官网开发。欢迎致电:0760-88809987、18676265646 陈先生。
  • 相关阅读:
    C/S模式客户端连接服务器连接不上的问题
    C#获取网络状态
    SQL2008R转SQL2005
    Centos7 调整磁盘空间
    crontab 定时任务
    nginx 简单教程
    vagrant 使用
    加快 hive 查询的 5 种方法
    编译 ambari 2.7.3
    kylin 连接 hortonworks 中的 hive 遇到的问题
  • 原文地址:https://www.cnblogs.com/wln3344/p/4089502.html
Copyright © 2011-2022 走看看