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

Přenést řetězec na číslo, interpretovat nulový nebo prázdný řetězec jako 0

Typy hodnot musí být konzistentní; sloučení prázdného řetězce na 0 znamená, že jej poté nemůžete porovnat s null v nullif . Takže jedno z těchto funguje:

# create table tests (orig varchar);
CREATE TABLE

# insert into tests (orig) values ('1'), (''), (NULL), ('0');
INSERT 0 4


# select orig, cast(coalesce(nullif(orig,''),'0') as float) as result from tests;
 orig | result 
------+--------
    1 |      1
      |      0
      |      0
    0 |      0
(4 rows)


# select orig, coalesce(cast(nullif(orig,'') as float),0) as result from tests;
 orig | result 
------+--------
 1    |      1
      |      0
      |      0
 0    |      0
(4 rows)


  1. Jak nastavit výchozí hodnotu pro existující sloupec

  2. Zachytitelná závažná chyba:Objekt třídy mysqli_stmt nelze převést na řetězec

  3. Jak najít další záznam po zadaném v SQL?

  4. Jak zobrazit pouze nenulová pole v mysql prostřednictvím php a HTML?