sql >> Database teknologi >  >> RDS >> PostgreSQL

Skift tom streng til NULL, når kolonnen har DATE-begrænsning

Brug NULLIF i din INSERT-sætning:

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

Hvis du vil indsætte NULL, hvis den pågældende værdi er en af ​​flere værdier, kan det være nemmest at bruge en CASE-sætning:

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

Kunne også gøre det samme med et array, hvis det er nemmere:

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


  1. Returner flere værdier fra Oracle Function

  2. Hvordan opdager man tomt ResultSet fra MySQL?

  3. postgreSQL:hvordan man dublerer en række

  4. VB.NET og MySql UPDATE-forespørgsel