数据库SQL如何使用透视表PIVOT,实现数据行转列

 时间:2024-10-21 18:29:33

1、创建一个临时表,用于演示sqlserver数据库中,如何使用透视表PIVOT,实现行数据思凳框酣转成列数据IF OBJECT_ID('tempdb..#tblVendor') IS NOT NULL DROP TABLE #tblVendor;CREATE TABLE #tblVendor( VendorName varchar(50), -- 供应商名称 OrderNum int, -- 订单数量 OrderYear int -- 订单年份 );

数据库SQL如何使用透视表PIVOT,实现数据行转列

2、往临时表中插入几行测试数据,模拟供应商供货的订单表insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供应商1', 1000, 2018);insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供应商1', 2000, 2017);insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供应商1', 3000, 2019);insert into #tblVendor(VendorName, OrderNum, OrderYear) values('供应商2', 4000, 2019);

数据库SQL如何使用透视表PIVOT,实现数据行转列

3、查询临时表中的测试数据select * from #tblVendor;

数据库SQL如何使用透视表PIVOT,实现数据行转列

4、首先筛选“供应商1”的供货数据,可以直接使用where条件过滤即可select * from #tblVendor where VendorName = '供应商1';

数据库SQL如何使用透视表PIVOT,实现数据行转列

5、筛选“供应商1”的供货数据,按照年份排序,可以使用order by语句即可select * from #tblVendor where VendorName = '供应商1' order by OrderYear;

数据库SQL如何使用透视表PIVOT,实现数据行转列

6、按照供应商汇总订单数量,就需要使用group by语句select VendorName, OrderNumTotal = sum(OrderNum) from #tblVendor group by VendorName;

数据库SQL如何使用透视表PIVOT,实现数据行转列

7、如果想要将行记录的供应商订单数量,转换为列数据,这个时候就需要使用透视表PIVOT语法了select VendorName,[2017], [2018], [2019]from #tblVendor vpivot( sum(v.OrderNum) for v.OrderYear in([2017], [2018], [2019]))as result

数据库SQL如何使用透视表PIVOT,实现数据行转列
  • PowerQuery编辑器怎样快速对数据进行四则运算
  • 如何在Excel VBA中设置GetOpenFilename的参数
  • excel vba如何在指定位置插入指定格式的行
  • Excel如何实现按照关键词实现行列拼接
  • 在VBA中如何加载宏?
  • 热门搜索
    扫黑除恶手抄报内容 小学数学手抄报 六一儿童节手抄报内容 五一劳动节手抄报内容 我的梦中国梦手抄报 关于宪法的手抄报 向英雄致敬手抄报简单 环保手抄报资料 读书节手抄报内容 38妇女节手抄报图片