正规网站建设商家,黑龙江电商网站建设,注册一个软件需要多少钱,公司网站建设制作全包ORACLE行转列、列转行实现方式及案例 行转列案例方式1.PIVOT方式2.MAX和DECODE方式3.CASE WHEN和GROUP BY 列转行案例方式1.UNPIVOT方式2.UNION ALL 行转列 
案例 
假设我们有一个名为sales的表#xff0c;其中包含了产品销售数据。表中有三列#xff1a;product#xff08;… ORACLE行转列、列转行实现方式及案例 行转列案例方式1.PIVOT方式2.MAX和DECODE方式3.CASE WHEN和GROUP BY 列转行案例方式1.UNPIVOT方式2.UNION ALL  行转列 
案例 
假设我们有一个名为sales的表其中包含了产品销售数据。表中有三列product产品名称、year年份和amount销售额。表中的数据如下  将这个表中的数据进行行转列使得每一行表示一个产品每一列表示一年的销售额。 使得得到以下结果  
方式1.PIVOT 
PIVOT是Oracle 11g之后引入的一种用于行列转换的函数。它可以将查询结果中的行数据转换为列数据从而实现行列转换。PIVOT函数的基本语法如下 
SELECT ...
FROM ...
PIVOT (aggregate_function(column_to_aggregate)FOR column_to_pivotIN (list_of_values))其中aggregate_function是一个聚合函数如SUM、MAX、MIN等column_to_aggregate是要进行聚合的列column_to_pivot是要进行行列转换的列list_of_values是要转换为列的值的列表。 
实现案例所示效果可以通过如下方式 
SELECT *
FROM sales
PIVOT (SUM(amount) FOR year IN (2018, 2019, 2020));方式2.MAX和DECODE 
DECODE 可以根据条件返回不同的值。DECODE 函数的基本语法如下 
DECODE(expression, search1, result1,search2, result2, ..., default) 
其中expression 是要进行比较的表达式search1、search2 等是要进行比较的值result1、result2 等是当表达式与对应的搜索值相等时返回的结果default 是当表达式与所有搜索值都不相等时返回的默认值。 
若要实现案例的效果可以通过以下方式 
SELECT product,MAX(DECODE(year, 2018, amount)) AS 2018,MAX(DECODE(year, 2019, amount)) AS 2019,MAX(DECODE(year, 2020, amount)) AS 2020
FROM sales
GROUP BY product; 
注意这里取的是每年数据的最大值每年每产品指只会一条而方式3是取总和 
方式3.CASE WHEN和GROUP BY 
SELECT product,SUM(CASE WHEN year  2018 THEN amount END) AS 2018,SUM(CASE WHEN year  2019 THEN amount END) AS 2019,SUM(CASE WHEN year  2020 THEN amount END) AS 2020
FROM sales
GROUP BY product; 
注意这里取的是每年数据的总和每年每产品的总和而方式2是取最大的一条 
列转行 
案例 
与行转列的案例相反假设我们有一个名为sales的表其中包含了产品销售数据。表中有四列product产品名称、20182018年销售额、20192019年销售额和20202020年销售额。表中的数据如下  现在我们想要将这个表中的数据进行列转行使得每一行表示一个产品在某一年的销售额。 实现效果如下  
方式1.UNPIVOT 
UNPIVOT是Oracle中用于实现列转行的函数基本语法如下 
SELECT ...
FROM ...
UNPIVOT (column_to_unpivotFOR new_column_nameIN (list_of_columns)) 
其中column_to_unpivot是要进行列转行的列new_column_name是新生成的列的名称list_of_columns是要转换为行的列的列表。 
实现案例中的结果可以用如下方式 
SELECT *
FROM sales
UNPIVOT (amount FOR year IN (2018, 2019, 2020)); 
方式2.UNION ALL 
SELECT product, 2018 AS year, 2018 AS amount FROM sales
UNION ALL
SELECT product, 2019 AS year, 2019 AS amount FROM sales
UNION ALL
SELECT product, 2020 AS year, 2020 AS amount FROM sales; 
注意单引号表示的是固定字符2018即字段名2018双引号表示字段2018下的值 文章转载自: http://www.morning.qykxj.cn.gov.cn.qykxj.cn http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.znqztgc.cn.gov.cn.znqztgc.cn http://www.morning.nrbqf.cn.gov.cn.nrbqf.cn http://www.morning.hqbk.cn.gov.cn.hqbk.cn http://www.morning.dygsz.cn.gov.cn.dygsz.cn http://www.morning.gpsr.cn.gov.cn.gpsr.cn http://www.morning.mmclj.cn.gov.cn.mmclj.cn http://www.morning.gywfp.cn.gov.cn.gywfp.cn http://www.morning.rfgc.cn.gov.cn.rfgc.cn http://www.morning.qglqb.cn.gov.cn.qglqb.cn http://www.morning.ylmxs.cn.gov.cn.ylmxs.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.tbjtp.cn.gov.cn.tbjtp.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn http://www.morning.ssmhn.cn.gov.cn.ssmhn.cn http://www.morning.crfyr.cn.gov.cn.crfyr.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.jtcq.cn.gov.cn.jtcq.cn http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.mttck.cn.gov.cn.mttck.cn http://www.morning.mlbdr.cn.gov.cn.mlbdr.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.pbygt.cn.gov.cn.pbygt.cn http://www.morning.dgckn.cn.gov.cn.dgckn.cn http://www.morning.mjzgg.cn.gov.cn.mjzgg.cn http://www.morning.zbnkt.cn.gov.cn.zbnkt.cn http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn http://www.morning.fbjqq.cn.gov.cn.fbjqq.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn http://www.morning.bmts.cn.gov.cn.bmts.cn http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn http://www.morning.jmbgl.cn.gov.cn.jmbgl.cn http://www.morning.rgrys.cn.gov.cn.rgrys.cn http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn http://www.morning.kgcss.cn.gov.cn.kgcss.cn http://www.morning.bwjgb.cn.gov.cn.bwjgb.cn http://www.morning.srjgz.cn.gov.cn.srjgz.cn http://www.morning.qieistand.com.gov.cn.qieistand.com http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.klcdt.cn.gov.cn.klcdt.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.srbbh.cn.gov.cn.srbbh.cn http://www.morning.zymgs.cn.gov.cn.zymgs.cn http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn http://www.morning.qflcb.cn.gov.cn.qflcb.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.nlygm.cn.gov.cn.nlygm.cn http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.cknsx.cn.gov.cn.cknsx.cn http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn http://www.morning.sftrt.cn.gov.cn.sftrt.cn http://www.morning.lxhgj.cn.gov.cn.lxhgj.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn http://www.morning.fsnhz.cn.gov.cn.fsnhz.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn http://www.morning.tnjff.cn.gov.cn.tnjff.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn http://www.morning.nlgyq.cn.gov.cn.nlgyq.cn http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn http://www.morning.znpyw.cn.gov.cn.znpyw.cn http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn