码迷,mamicode.com
首页 > 数据库 > 详细

PCB MS SQL 行转列(动态拼SQL)

时间:2018-06-30 20:57:25      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:convert   bsp   技术   SQ   into   拼接   varchar   date   http   

 一.原数据:

SELECT inman,indate
FROM [fp_db].[dbo].[ppezhpbb]
WHERE indate > 2016-5-1 AND indate < 2016-6-1
ORDER BY indate

技术分享图片

 

二.转换后(动态拼接SQL):

--数据先存临时表
SELECT  inman,indate INTO #tab
FROM [fp_db].[dbo].[ppezhpbb]
WHERE indate > 2016-5-1 AND indate < 2016-6-1
--拼接字符串
DECLARE @sql NVARCHAR(MAX)
SET @sql = SELECT CONVERT(varchar(100), indate, 23) indate  
SELECT @sql = @sql +  ,sum(case when inman=‘‘‘ + inman + ‘‘‘ then 1 else 0 end)  + inman  --行转列统计
FROM #tab
GROUP BY inman   --需由列转行的字段
SET @sql = @sql +  FROM [fp_db].[dbo].[ppezhpbb] WHERE indate > ‘‘2016-5-1‘‘ AND indate < ‘‘2016-6-1‘‘ 
SET @sql = @sql +  GROUP BY CONVERT(varchar(100), indate, 23) 
SET @sql = @sql +  ORDER BY indate 
SELECT @sql
exec sp_executesql @sql

技术分享图片

 

PCB MS SQL 行转列(动态拼SQL)

标签:convert   bsp   技术   SQ   into   拼接   varchar   date   http   

原文地址:https://www.cnblogs.com/pcbren/p/9248521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!