मूल्यों के प्रकारों को सुसंगत होने की आवश्यकता है; खाली स्ट्रिंग को 0 से जोड़ने का मतलब है कि आप इसकी तुलना null
. से नहीं कर सकते nullif
. में . तो इनमें से कोई भी काम करता है:
# 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)