SQL Server 列转行
来源:互联网 发布:王者荣耀延迟高4g网络 编辑:程序博客网 时间:2024/05/16 15:24
参照:http://www.2cto.com/database/201308/235061.html
Oracle行转列,列转行:http://blog.csdn.net/xiaokui_wingfly/article/details/42419207
1.创建表脚本:
CREATE TABLE [dbo].[CMS_Vote_Manage]([RID] [int] NOT NULL,[TID] [int] NOT NULL,[IID] [int] NULL,[OtherContent] [nvarchar](50) NULL,[VoteIp] [nvarchar](15) NULL,[VoteTime] [datetime] NULL,[UserNumber] [nvarchar](15) NULL,[SiteID] [nvarchar](12) NULL, CONSTRAINT [PK_NT_vote_Manage] PRIMARY KEY CLUSTERED ([RID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO2.数据脚本
INSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8188, 1, 1, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8189, 3, 7, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8190, 4, 9, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8191, 5, 11, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8192, 6, 15, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8193, 7, 19, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8194, 8, 23, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8195, 9, 26, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8196, 10, 31, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8197, 1010, 2017, NULL, '::1', '2015-3-4 11:49:52', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8198, 1, 1, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8199, 3, 7, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8200, 4, 9, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8201, 5, 11, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8202, 6, 15, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8203, 7, 19, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8204, 8, 23, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8205, 9, 26, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8206, 10, 31, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GOINSERT INTO CMS_Vote_Manage([RID], [TID], [IID], [OtherContent], [VoteIp], [VoteTime], [UserNumber], [SiteID]) VALUES (8207, 1010, 2017, NULL, '::12', '2015-3-4 12:07:38', NULL, NULL);GO3.转换前数据:
4.希望列转行后的数据:
5.SQL
Declare @sql varchar(max) set @sql=STUFF((select ','+QUOTENAME([IID]) from (select VoteIp,TID,IID from CMS_Vote_Manage)B group by [IID] FOR XML PATH('')) ,1,1,'') set @sql='select * from (select VoteIp,TID,IID from CMS_Vote_Manage) t pivot (sum(TID)for [IID] in ('+@sql+')) a ' exec(@sql)
注释:
(1)SELECT stuff('NBA',1,1,'C')
这个结果就是CBA,该函数主要起到替换字符的作用,第一个参数是待被替换的字符串,第二个参数是替换的起点,第三个参数是从起点开始多少个字符将被替换,第四个参数是要替换的字符串。
(2)QUOTENAME关键字用来给名称加上[],对于时间必须要加上这个,否则不知道其为列名
(3)FOR XML PATH('')这个可以将查询到的结果集转换为XML文档格式的字符串
0 0
- sql server 列转行
- sql server 列转行
- SQL Server 列转行
- SQL Server 2005 列转行
- SQL Server 中行转列 列转行
- SQL SERVER 2000/2005 列转行 行转列
- SQL SERVER 2000/2005 列转行 行转列
- SQL Server 实现 行转列、列转行
- Sql Server使用游标实现列转行
- Sql SerVer 查询行转列、列转行
- SQL Server 列转行存储过程
- Sql Server 列转行 Pivot使用
- sql列转行
- sql列转行
- 列转行SQL
- sql列转行
- sql列转行
- SQL 列转行
- 网络协议杂谈
- 一种分表的想法
- Android开发工具下载地址
- property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
- Transfer-Encoding详解以及erlang中的实现
- SQL Server 列转行
- android support v7 Toolbar控件
- springMVC 快速入门
- printf("%d,%d\n", *ptr, *(++ptr))
- windows server 2008 R2 显示桌面图标
- Oracle PL/SQL cursor(游标)
- duang什么意思
- 数据库的操作笔记
- Cocos2d策略类塔防精品手游-MiniTD独家完整源码