sql >> Databáze >  >> RDS >> Oracle

Použití komplexního příkazu IF v Oracle SQL

Přečtěte si dokumentaci na virtuálních sloupcích:

CREATE TABLE Rent_Band
(
    Plot_ID NUMBER(3),
    Band VARCHAR(1) AS
       (CASE WHEN Owner_Category = 'Council' AND Sheds ='No' THEN 'A'
            WHEN Owner_Category = 'Private' AND Water_Supply ='Yes' THEN 'D'
            WHEN Owner_Category = 'Council' AND Water_Supply ='No' AND Sheds ='Yes' THEN 'B'
            WHEN Owner_Category = 'Private' AND Water_Supply ='No' AND Sheds ='No' THEN 'B'
       ELSE 'C' END),
    Rent_Charge NUMBER(4), 
    Owner_Category VARCHAR(10) CONSTRAINT Checking_Owner_Category CHECK((Owner_Category='Private') OR (Owner_Category='Council')), 
    Sheds VARCHAR(3) CHECK((Sheds='Yes') OR (Sheds='No')), 
    Water_Supply VARCHAR(3) CHECK((Water_Supply='Yes') OR (Water_Supply='No'))
)

BTW, DŮRAZNĚ doporučuji:

  • pomocí bit místo Yes /No omezení pro Sheds a Water_Supply (šetří prostor a režijní kontrolní omezení a ve většině jazyků aplikací se převádí přímo do boolean)
  • pomocí vyhledávací tabulky pro Owner_Category místo omezení řetězce v podstatě ze stejných důvodů



  1. Jak přinutit Oracle používat skenování rozsahu indexů?

  2. Jak vytvořit jazykové soubory Codeigniter z databáze?

  3. Trvalá chyba časového limitu H12 pro všechny požadavky, které spouštějí databázový dotaz

  4. Domovská stránka Oracle 10g express se nezobrazuje