sql >> Database teknologi >  >> RDS >> Mysql

Sagsfremstilling i MySQL

Ja, sådan noget her:

SELECT
    id,
    action_heading,
    CASE
        WHEN action_type = 'Income' THEN action_amount
        ELSE NULL
    END AS income_amt,
    CASE
        WHEN action_type = 'Expense' THEN action_amount
        ELSE NULL
    END AS expense_amt

FROM tbl_transaction;

Som andre svar har påpeget, har MySQL også IF() funktion for at gøre dette ved at bruge mindre udførlig syntaks. Jeg prøver generelt at undgå dette, fordi det er en MySQL-specifik udvidelse til SQL, der generelt ikke understøttes andre steder. CASE er standard SQL og er meget mere bærbar på tværs af forskellige databasemotorer, og jeg foretrækker at skrive bærbare forespørgsler så meget som muligt, kun ved at bruge motorspecifikke udvidelser, når det bærbare alternativ er betydeligt langsommere eller mindre bekvemt.



  1. Sådan laver du punkt-i-tidsgendannelse af MySQL- og MariaDB-data ved hjælp af ClusterControl

  2. SQLAlchemy eller psychopg2?

  3. Få den første mandag i en måned i SQLite

  4. Monitoring Galera Cluster for MySQL eller MariaDB - Understanding Metrics (Opdateret)