sql >> Database >  >> RDS >> PostgreSQL

Cast string naar nummer, interpreteer null of lege string als 0

De soorten waarden moeten consistent zijn; het samenvoegen van de lege tekenreeks tot een 0 betekent dat u deze vervolgens niet kunt vergelijken met null in de nullif . Dus een van deze werken:

# 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. XAMPP-map verplaatst naar nieuwe computer, krijgt nu (XAMPPERrorDomain error 1.) bij het opstarten van MySQL

  2. Postgres-tabel naar tweedimensionale array

  3. Optimistische vergrendeling implementeren in Oracle

  4. Een Oracle-database migreren van AWS EC2 naar AWS RDS