sql >> Database >  >> RDS >> Mysql

Casusuitdrukking versus casusverklaring

De CASE uitdrukking evalueert tot een waarde, d.w.z. het wordt gebruikt om te evalueren naar een van een reeks resultaten, op basis van een bepaalde voorwaarde.
Voorbeeld:

SELECT CASE
    WHEN type = 1 THEN 'foo'
    WHEN type = 2 THEN 'bar'
    ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`

De CASE statement voert een van een set instructies uit, gebaseerd op een voorwaarde.
Voorbeeld:

CASE
    WHEN action = 'update' THEN
        UPDATE sometable SET column = value WHERE condition;
    WHEN action = 'create' THEN
        INSERT INTO sometable (column) VALUES (value);
END CASE

Je ziet hoe ze op elkaar lijken, maar de uitspraak niet evalueren tot een waarde en kan op zichzelf worden gebruikt, terwijl de uitdrukking deel moet uitmaken van een uitdrukking, b.v. een vraag of een opdracht. U kunt de instructie niet in een query gebruiken, omdat een query geen statements kan bevatten, alleen expressies die naar iets moeten worden geëvalueerd (de query zelf is in zekere zin een statement), b.v. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE slaat nergens op.




  1. Hoe kan ik een .NET-toepassing implementeren die ODAC gebruikt zonder de hele component voor de gebruiker te installeren?

  2. html <select multiple=multiple> + SQL Query Search

  3. Simuleer lag-functie in MySQL

  4. Hoe de versie van oracle-provider voor ole-db te controleren. OraOLEDB.Oracle-provider