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

Học Oracle, Thiết lập boolean dựa trên ngày tháng

Nếu bạn có has_unpaid_bill cột trong bảng ở vị trí đầu tiên? Nó phụ thuộc vào SYSDATE . Yêu cầu có mùi như một cột ảo, nhưng - bạn không thể sử dụng SYSDATE ở đó vì nó không phải là một hàm xác định. Do đó, làm thế nào về một chế độ xem thay vì? Giữ dữ liệu bạn cần trong bảng, nhưng truy vấn chế độ xem:

Bảng và một số bản ghi mẫu:

SQL> create table test
  2    (id                  number,
  3     last_bill_paid_date date
  4    );

Table created.

SQL> insert into test values (1, date '2020-11-09');

1 row created.

SQL> insert into test values (1, date '2020-11-02');

1 row created.

Xem:

SQL> create or replace view v_test as
  2    select id,
  3           last_bill_paid_date,
  4           case when trunc(sysdate) - last_bill_paid_date > 5 then 'Y'
  5                else 'N'
  6           end has_unpai_dbill
  7    from test;

View created.

SQL>
SQL> select * from v_test;

        ID LAST_BILL_ H
---------- ---------- -
         1 09.11.2020 N
         1 02.11.2020 Y

SQL>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Từ khóa 'as' có được yêu cầu trong Oracle để xác định bí danh không?

  2. Oracle PL / SQL - Các ngoại lệ NO_DATA_FOUND có ảnh hưởng xấu đến hiệu suất thủ tục được lưu trữ không?

  3. Oracle so sánh hai ngày khác nhau

  4. Cách nhóm các hàng liên tiếp với nhau trong SQL theo nhiều cột

  5. Sử dụng kết quả Thu thập hàng loạt trong một truy vấn chọn lọc mà không có con trỏ