sql >> Database teknologi >  >> RDS >> Oracle

Lær Oracle, Indstilling af boolesk baseret på dato

Skulle du have has_unpaid_bill kolonne i tabellen i første omgang? Det afhænger af SYSDATE . Kravet lugter af en virtuel kolonne, men - du kan ikke bruge SYSDATE der, da det ikke er en deterministisk funktion. Derfor, hvad med en visning i stedet? Behold de data, du har brug for, i tabellen, men forespørg på visningen:

Tabel og flere eksempler på poster:

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.

Vis:

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. Vis det antal gange, en placering dukkede op i den respektive tabel, efter at den tilsvarende indstilling fra rullelisten blev valgt

  2. Behov for at forespørge om en særskilt kombination af to felter sammen med en optælling af, at den adskilte kombination forekommer

  3. Excel VBA-forbindelse til ekstern Oracle DB med InstantClient

  4. MySQL:Få produkter med alle attributter på listen