sql >> Databasteknik >  >> RDS >> PostgreSQL

Kasta sträng till nummer, tolka null eller tom sträng som 0

Typerna av värderingar måste vara konsekventa; att sammanföra den tomma strängen till en 0 betyder att du inte kan jämföra den med null i nullif . Så någon av dessa fungerar:

# 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. Hur man begränsar exekveringstiden för sql

  2. Ansluta till MySQL-databasen med PHP från en Android-enhet

  3. Kan en base64-kodad sträng innehålla blanksteg?

  4. Rails skapar schema_migrations - Mysql2::Fel:Den angivna nyckeln var för lång