PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Rzutuj ciąg na liczbę, interpretując null lub pusty ciąg jako 0

Rodzaje wartości muszą być spójne; połączenie pustego ciągu z 0 oznacza, że ​​nie można go później porównać z null w nullif . Więc obie te rzeczy działają:

# 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql - dodaj domyślną kolumnę logiczną do zestawu tabeli

  2. Opcje odzyskiwania po awarii dla PostgreSQL wdrożone w chmurze hybrydowej

  3. PostgreSQL, liczba wierszy między datą minimalną a maksymalną

  4. Django resetuje auto-inkrementację pola pk/id dla produkcji

  5. Rails + Postgres:Nie zwraca informacji o strefie czasowej w kolumnie z połączonej tabeli