PostgreSQL空值null參與運算的處理方法

來源:互聯網
上載者:User

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等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.