sql >> Databasteknik >  >> RDS >> PostgreSQL

Ändra tom sträng till NULL när kolumnen har DATE-begränsning

Använd NULLIF i din INSERT-sats:

INSERT INTO your_table (cols..., some_date) VALUES (..., NULLIF(your_input_field, ''))

Om du vill infoga NULL om värdet i fråga är något av ett antal värden, kan det vara enklast att använda en CASE-sats:

INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field IN ('', '#', '-', '--', '??') THEN NULL ELSE your_input_field END)

Skulle kunna göra samma sak med en array också, om det är enklare:

INSERT INTO your_table (cols..., some_date)
VALUES (..., CASE WHEN your_input_field = ANY('{"",#,-,--,??}'::TEXT[]) THEN NULL ELSE your_input_field END)


  1. PostgreSQL för att hitta mittpunkten mellan två tidsstämplar

  2. kan temporära MySQL-variabler användas i WHERE-satsen?

  3. oracle :Dynamiskt kolumnnamn

  4. Hur definierar man JPA Repository Query med en Join?