我正在阅读工作中的一些旧代码,并注意到有几个视图具有order by 1子句。这有什么作用呢?

例子:

Create view v_payment_summary AS
SELECT A.PAYMENT_DATE,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME CONDITION) AS SUM_X,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME OTHER CONDITION) AS SUM_Y    
FROM payment A    
ORDER BY 1;

当前回答

这将根据返回的第一列对结果进行排序。在本例中,它将根据payment_date排序。

其他回答

我相信在Oracle中,这意味着按列#1排序

这将根据返回的第一列对结果进行排序。在本例中,它将根据payment_date排序。

它只是指根据查询结果的第一列对视图或表进行排序。

当你使用基于集合的操作符(如union)时,这很有用

select cola
  from tablea
union
select colb
  from tableb
order by 1;

ORDER BY 1表示按结果集的第一列排序