我有一个表Table1,有三列Acc,Bal1,Bal2。我想编写一个查询来获取所有账户(ACC)和余额(BAL1和BAL2之间的比例更高)。
任何人都可以帮我吗?
答案 0 :(得分:0)
您只需使用GREATEST
即可在所有帐户的两列中获得最佳余额。
SQL> WITH DATA AS(
2 SELECT 1 ACC, 100 BAL_1, 200 BAL_2 FROM DUAL UNION ALL
3 SELECT 1 ACC, 300 BAL_1, 200 BAL_2 FROM DUAL UNION ALL
4 SELECT 1 ACC, 50.7 BAL_1, 49.8 BAL_2 FROM DUAL UNION ALL
5 SELECT 1 ACC, 0.5 BAL_1, 0.7 BAL_2 FROM DUAL)
6 SELECT ACC, GREATEST(BAL_1, BAL_2) BAL FROM DATA
7 /
ACC BAL
---------- ----------
1 200
1 300
1 50.7
1 .7
SQL>
答案 1 :(得分:0)
这是一个示例数据和查询的输出
从acc中选择*;
ACC BAL1 BAL2
1 100 200
2 200 100
3 123 444
4 464 111
以及获取所需输出的查询
选择acc,最大(bal1,bal2)为"更大的平衡"来自acc;
ACC greater balance
1 200
2 200
3 444
4 464