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选择吗?从您的_表中选择条件,一月、二月、三月、四月、五月、六月、七月,然后保留不需要的列