Mysql
 sql >> база данни >  >> RDS >> Mysql

Прост оператор If Else в sql

Изглежда, че се опитвате да използвате IF(condition, true_response, false_response) на Excel синтаксис. Еквивалентът в T-SQL е CASE WHEN THEN ELSE END синтаксис:

SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY ='USD' THEN 1 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY='EUR' THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

Това ще работи с по-сложни заявки от примера, който ни давате. Друг начин да го направите, ако имате няколко възможни стойности за едно и също поле, които ще върнат същия отговор, би бил

SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

Това обаче не е правилният синтаксис, който да използвате, за да получите само редовете с определени валути; предишния отговор с

SELECT *     
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES
WHERE 
    CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') 

ще работи най-добре за това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортирайте MySQL данни в Excel в PHP

  2. Проблем с инсталирането на South в съществуваща база данни. MySql не поддържа "изявления за промяна на схемата"

  3. Как да създадете тригер за изтриване на php myadmin

  4. Нулиране на стойността за автоматично увеличение на базата данни MySql с JPA

  5. Появява се арабски език в php/mysql ???? въпросителни знаци в html