如何将此SQL Server查询转换为Oracle

时间:2015-01-22 11:36:15

标签: sql sql-server oracle

如何将下面的Sql Server查询转换为Oracle

SELECT
    totalRecords = (SELECT
                        COUNT(*) 
                    FROM
                        Finance
    )
    ,
    positiveAmt = SUM(positiveAmount),
    negativeAmt = SUM(negativeAmount) 
FROM
    Finance

2 个答案:

答案 0 :(得分:0)

select count(*), sum(positiveAmount), sum(negativeAmount)
  into totalRecords, positiveAmt, negativeAmt
  from Finance;

答案 1 :(得分:0)

negativeAmt = SUM(negativeAmount)是Microsoft定义列别名的非标准方式。

在Oracle(以及几乎所有其他DBMS)中,列别名在之后写入列表达式,该表达式应该是别名,而不是在它前面。

所以你的查询变为:

SELECT COUNT(*) as totalRecords,
       SUM(positiveAmount) as positiveAmt, 
       SUM(negativeAmount) as negativeAmt
FROM Finance

AS关键字是可选的,但我建议使用它来使事情更清晰。

Oracle SQLFiddle:http://sqlfiddle.com/#!4/7f7da/1 SQL Server小提琴:http://sqlfiddle.com/#!3/7f7da/1