decode()只能创建新的列(横向扩展),而max()函数是在减少相同分类行(纵向压缩),从而将原来瘦长的数据库记录集转换为相对扁平的矩阵式记录集。
减少记录数目的方法可能只有四种:where,minus,归组,distinct :记住是在oracle存在的对应在sql中只能写select case end....
Select cp 产品,decode(lb,'甲',sl,Null) 甲数量,decode(lb,'甲',je,Null) 甲金额,
decode(lb,'乙',sl,Null) 乙数量,decode(lb,'乙',je,Null) 乙金额,
decode(lb,'丙',sl,Null) 甲数量,decode(lb,'丙',je,Null) 丙金额,
decode(lb,'丁',sl,Null) 甲数量,decode(lb,'丁',je,Null) 丁金额
From aaa;
---------------------------------------------------------------------
产品 甲数量 甲金额 乙数量 乙金额 甲数量 丙金额 甲数量 丁金额
------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
产品A 1 2
产品B 2 3
产品C 3 4
产品D 1 4
产品A 2 6
产品C 3 6
产品E 4 5
产品A 5 4
产品D 6 4
产品B 1 3
---------------------------------------------------------------------
转载于:https://www.cnblogs.com/tinachang021/archive/2008/07/17/1245027.html