Các loại giá trị cần phải nhất quán; liên kết chuỗi rỗng thành 0 có nghĩa là sau đó bạn không thể so sánh nó với null
trong nullif
. Vì vậy, một trong hai hoạt động này:
# 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)