Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql oracle选择不同金额字段_Sql_Oracle_Field - Fatal编程技术网

sql oracle选择不同金额字段

sql oracle选择不同金额字段,sql,oracle,field,Sql,Oracle,Field,我有一张这样的桌子: | criteria | jan | feb | mar | apr | may | jun | jul | |A |100 |100 |100 |100 |100 |100 |100 | |B |200 |200 |200 |200 |200 |200 |200 | 我想选择基于月份的字段。 如果月份是一月,那么我希望我的桌子像这样 | criteria | jan | |A |100 | |

我有一张这样的桌子:

| criteria | jan | feb | mar | apr | may | jun | jul |
|A         |100  |100  |100  |100  |100  |100  |100  |
|B         |200  |200  |200  |200  |200  |200  |200  |
我想选择基于月份的字段。 如果月份是一月,那么我希望我的桌子像这样

| criteria | jan |
|A         |100  |
|B         |200  |
| criteria | jan | feb | mar |
|A         |100  |100  |100  |
|B         |200  |200  |200  |
如果月份是三月,那么我希望我的桌子看起来像这样

| criteria | jan |
|A         |100  |
|B         |200  |
| criteria | jan | feb | mar |
|A         |100  |100  |100  |
|B         |200  |200  |200  |

请帮助我,谢谢…

如果您不介意将结果作为xml返回的话

下面是一些示例数据

CREATE TABLE table1
AS
   SELECT 'A' criteria,
          100 jan,
          100 feb,
          100 mar,
          100 apr
     FROM DUAL
   UNION ALL
   SELECT 'B',
          200,
          200,
          200,
          200
     FROM DUAL;
我只去了四月份,但你明白了。
这是一月份的结果

WITH sql_statements
     AS (SELECT 'select criteria, jan from table1' jan,
                'select criteria, jan, feb from table1' feb,
                'select criteria, jan, feb, mar from table1' mar,
                'select criteria, jan, feb, mar, apr from table1' apr
           FROM DUAL)
SELECT DBMS_XMLGEN.getxmltype (jan)
  FROM sql_statements;
结果

  <ROWSET>
 <ROW>
  <CRITERIA>A</CRITERIA>
  <JAN>100</JAN>
 </ROW>
 <ROW>
  <CRITERIA>B</CRITERIA>
  <JAN>200</JAN>
 </ROW>
</ROWSET>
<ROWSET>
 <ROW>
  <CRITERIA>A</CRITERIA>
  <JAN>100</JAN>
  <FEB>100</FEB>
  <MAR>100</MAR>
  <APR>100</APR>
 </ROW>
 <ROW>
  <CRITERIA>B</CRITERIA>
  <JAN>200</JAN>
  <FEB>200</FEB>
  <MAR>200</MAR>
  <APR>200</APR>
 </ROW>
</ROWSET>
结果

  <ROWSET>
 <ROW>
  <CRITERIA>A</CRITERIA>
  <JAN>100</JAN>
 </ROW>
 <ROW>
  <CRITERIA>B</CRITERIA>
  <JAN>200</JAN>
 </ROW>
</ROWSET>
<ROWSET>
 <ROW>
  <CRITERIA>A</CRITERIA>
  <JAN>100</JAN>
  <FEB>100</FEB>
  <MAR>100</MAR>
  <APR>100</APR>
 </ROW>
 <ROW>
  <CRITERIA>B</CRITERIA>
  <JAN>200</JAN>
  <FEB>200</FEB>
  <MAR>200</MAR>
  <APR>200</APR>
 </ROW>
</ROWSET>

A
100
100
100
100
B
200
200
200
200

我们是在谈论sql选择吗?从您的_表中选择条件,一月、二月、三月、四月、五月、六月、七月,然后保留不需要的列