PostgreSQL空值null參與運算的處理方法
在數字加減乘除運算中遇到某個字段值為空值(null)的時候,輸出的結果往往會讓我們失望,得不到我們所期待的數值,可以通過 coalesce方式將凡是取值為null,即空值的字段轉換成默認的值進行運算,從而改善運算效果。
coalesce函數用法: coalesce(字段名,默認值),很簡單吧~
演示如下: [root@dbserver ~]# su - postgres -bash-3.2$ psql music psql (9.5beta2) 輸入 "help" 來獲取幫助信息. music=# create table test_null(id int,num1 int,num2 int); CREATE TABLE
插入數據,有的取值為正常數字,有的則為空值null: music=# insert into test_null values(1,100,100); INSERT 0 1 music=# insert into test_null values(2,200,200); INSERT 0 1 music=# insert into test_null values(3,null,100); INSERT 0 1 music=# insert into test_null values(4,300,null); INSERT 0 1 music=# insert into test_null values(5,null,500); INSERT 0 1
查看一下表中的數據,發現null值的字段全部為空值: music=# select * from test_null; id | num1 | num2 ----+------+------ 1 | 100 | 100 2 | 200 | 200 3 | | 100 4 | 300 | 5 | | 500 (5 行記錄)
直接運算查看結果,會發現凡是遇到空值的運算結果均為空: music=# select num1+num2 from test_null; ?column? ---------- 200 400 (5 行記錄)
使用 coalesce函數之後便可處理null的問題: music=# select coalesce(num1,0)+coalesce(num2,0) from test_null; ?column? ---------- 200 400 100 300 500 (5 行記錄)
在這裡,coalesce設置的默認值為0,同樣也可以設置為其他的數值,比如人體體溫可以設置默認值為36,冰點為0,沸點為100等。