Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle SQL - max () với giá trị NULL

max(end_dt) keep (dense_rank first order by end_dt desc nulls first)

cập nhật:

SQL Fiddle

Thiết lập lược đồ Oracle 11g R2 :

CREATE TABLE t
    (val int, s date, e date)
;

INSERT ALL 
    INTO t (val, s, e)
         VALUES (1, sysdate-3, sysdate-2)
    INTO t (val, s, e)
         VALUES (1, sysdate-2, sysdate-1)
    INTO t (val, s, e)
         VALUES (1, sysdate-1, null)
    INTO t (val, s, e)
         VALUES (2, sysdate-1, sysdate-.5)
    INTO t (val, s, e)
         VALUES (2, sysdate-.5, sysdate-.25)
SELECT * FROM dual
;

Truy vấn 1 :

select val, min(s), max(e) keep (dense_rank first order by e desc nulls first)
from t group by val

Kết quả :

| VAL |                          MIN(S) | MAX(E)KEEP(DENSE_RANKFIRSTORDERBYEDESCNULLSFIRST) |
---------------------------------------------------------------------------------------------
|   1 | November, 13 2012 14:15:46+0000 |                                            (null) |
|   2 | November, 15 2012 14:15:46+0000 |                   November, 16 2012 08:15:46+0000 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục lưu trữ PL / SQL là gì trong cơ sở dữ liệu Oracle

  2. 7 điều cần biết về các ngăn trên Cơ sở hạ tầng đám mây Oracle

  3. Kết nối cơ sở dữ liệu oracle trong web.config asp.net

  4. Lỗi Oracle ORA-12154 trên IIS cục bộ, nhưng không phải với Máy chủ phát triển Visual Studio

  5. Kiểm tra xem một mục không tồn tại trong bảng khác hay không