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

Cast streng til nummer, fortolker null eller tom streng som 0

Typerne af værdier skal være konsekvente; at samle den tomme streng til et 0 betyder, at du ikke kan sammenligne den med null i nullif . Så en af ​​disse virker:

# 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. Kan du sætte pladsholdere i udvalgt del af en forespørgsel ved hjælp af PDO?

  2. Bekræft login med Bcrypt Password

  3. Hvordan får man den nye løbende saldo fra eksisterende balance?

  4. Annoncering af ClusterControl 1.7.3:Forbedret support PostgreSQL og nye cloud-implementeringsmuligheder