SQL数据库将横向数据转换为纵向字段
SQL数据库中如何将横向数据转换为纵向字段呢?其实方法很简单,我们通过虚拟表和动态转向就可以实现。本文就介绍了这一转换的过程,我们假设有两个表:表1和表2,如下图所示:
表1:
表2:
Sql语句如下:
//Join一下,把数据插入虚拟表#T
- SELECT i.SN,i.ItemName,t.Sort,t.t
- INTO #T
- FROM ItemInfo i INNER JOIN
- ItemType t ON i.SN=t.FKSN
- DECLARE @sql nvarchar(1000)
//动态转向
- SET @Sql = 'SELECT ItemName '
- SELECT @Sql = @Sql + ',ISNULL(SUM(CASE Sort WHEN '''+Sort+''' THEN t END),0) ['+Sort+']'
- FROM (SELECT DISTINCT Sort FROM #T) AS A
- SELECT @Sql = @Sql+' FROM [#T] GROUP BY itemName '
//删除虚拟表
- SET @Sql=@Sql+' DROP TABLE #T '
- EXEC(@sql)
执行结果:
以上就是横向数据转换为纵向字段的过程,如果您有更好的方法,欢迎您与我们分享,非常感谢您的支持!
【编辑推荐】
- SQL Server如何动态生成分区脚本
- 如何将系统监视器数据记录到SQL Server
- 用FOR XML PATH将查询结果以XML输出
- 解惑:对SQL Server分区进行合并(删除)
- 浅析SQL Server数据修复命令DBCC的使用
版权声明:
作者:后浪云
链接:https://www.idc.net/help/310644/
文章版权归作者所有,未经允许请勿转载。
THE END