sql >> Base de Datos >  >> RDS >> PostgreSQL

Declaración CASE de Postgres en una inserción

Bien, esta es la consulta de inserción con la sintaxis corregida

 INSERT INTO MyTable (value1, value2) 
        SELECT t.name,
              CASE WHEN t.name IN ('MyName') THEN 1
              ELSE 2
            END AS value2
           FROM MyTable;

Si intenta cambiar las filas existentes, necesita una consulta de actualización, por ejemplo,

-- first update, set value1 to 1 and value2 for all rows
UPDATE MyTable set value1 = 1,value2 = 2;

-- next query. Set value2 = 1 for only those rows matching your criteria
 UPDATE MyTable
    SET value2 = 1 WHERE name IN ('MyName');