原文:SQL SERVER特殊行转列案列一则 今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) INSERT INTO TEST SELECT 1, 1, '定型名称', '预定型' UNION ALL SELECT 1, 2, '进布方式', '调平' UNION
上一章我们讲了固定行转列,本章我们就将一下怎么动态实现行转列的.因为有时候需要行专列的值有成千上万条,不可能再用固定行转列的方法,否则你一定会崩溃掉的.好了,废话不多说,开始吧!常见一张表tmp_test,内容如下: 实现代码:create or replace procedure p_test isv_sql varchar2(2000); cursor cursor_1 isselect distinct subject from tmp_test order by subject; beg
在数据库操作中,有些时候我们遇到需要实现"行转列"的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME SELECT '星期一',1000 UNION ALL SELECT '星期二',2000 UNION ALL SELECT '星期三',3000 UNION ALL SELECT '星期四',4000 UNION ALL SE
table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) 对于一个字段的汇总和转置,只用一次. ) tb pivot(max(copies) for ORDER_TYPE in ([11],[12],[13],[14])) tb 对于多个字段的汇总和转置,要嵌套多次. ) tb pivot(max(copies) for ORDER_TYPE in ([11],[12],[13],[14])) tb
declare @sql varchar(8000) begin set @sql='' --初始化变量@sql select @[email protected]+',['+ convert(varchar(10),CreateDate,120)+']' from vwStationYield where CreateDate > DATEADD(dd,-14,convert(varchar(10),g