sql >> Databáze >  >> RDS >> PostgreSQL

Pokud má sloupec omezení DATE, změňte prázdný řetězec na NULL

Použijte NULLIF ve vašem příkazu INSERT:

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

Pokud chcete vložit NULL, pokud je daná hodnota některá z mnoha hodnot, může být nejjednodušší použít příkaz CASE:

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

Mohlo by to udělat totéž s polem, pokud je to jednodušší:

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


  1. ALTER TABLE pro přidání nového sloupce na omezené místo na disku

  2. Jak odstraním opakované hodnoty sloupců z přehledu

  3. Dotaz MySql k načtení hodnoty atributu prvku xml

  4. T-SQL Jak dynamicky vytvářet tabulky v uložených procedurách?