简单的工作室

把多行数据转为一列的SQL脚本(合并)

时间:2012-04-20 23:11来源:未知 作者:admin 点击:
把table中多行数据转为一列是可行的.请参考《 把表(table)数据合并为一个字符串的SQL语句》。本文是一个新的解决方案,只适合SQL SERVER2005以上的版本.使用CROSS APPLY ,FOR XML Path等技术. --新建表变量 DECLARE @myTable TABLE ( UserName VARCHAR (50), ArticleName

把table中多行数据转为一列是可行的.请参考《把表(table)数据合并为一个字符串的SQL语句》。本文是一个新的解决方案,只适合SQL SERVER2005以上的版本.使用CROSS APPLY  ,FOR XML Path等技术.

-- 新建表变量 
DECLARE @myTable TABLE 

    UserName VARCHAR(50), 
    ArticleName VARCHAR(50) 

 
-- 插入测试数据 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('Jack', 'ASP.NET') 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('Jack', 'SQL Server') 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('Jack', 'C#') 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('Jack', 'VB.NET') 
 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('David', 'Java') 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('David', 'Java Beans') 
INSERT INTO @myTable(UserName, ArticleName) 
VALUES ('David', 'Java script') 
     
 
SELECT     UserName, ArticleName FROM @myTable 
显示结果:
UserName                                           ArticleName 
-------------------------------------------------- -------------------- 
Jack                                               ASP.NET 
Jack                                               SQL Server 
Jack                                               C# 
Jack                                               VB.NET 
David                                              Java 
David                                              Java Beans 
David                                              Java script 
SELECT DISTINCT A.UserName,Articles FROM @myTable A 
      CROSS APPLY   
      (          
          SELECT ArticleName + ', ' FROM @myTable B WHERE A.UserName = B.UserName 
          FOR XML Path('')   
      ) AS C (Articles) 
显示结果:
UserName                                           Articles 
-------------------------------------------------- -------------------------------- 
David                                              Java, Java Beans, Java script,  
Jack                                               ASP.NET, SQL Server, C#, VB.NET,  

(责任编辑:简单的工作室)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容