coalesce 函式詳解與學習記錄

2021-10-24 21:21:53 字數 2212 閱讀 5659

1、在工作中都用到了此函式,特此學習並記錄一下.

2、coalesce 用途:

1、將控制替換成其他值;

2、返回第乙個非空值

3、sql例項​​​​​​​一

select coalesce(success_cnt, 1) from tablea

當success_cnt 為null值的時候,將返回1,否則將返回success_cnt的真實值。

select coalesce(success_cnt,period,1) from tablea

當success_cnt不為null,那麼無論period是否為null,都將返回success_cnt的真實值(因為success_cnt是第乙個引數),當success_cnt為null,而period不為null的時候,返回period的真實值。只有當success_cnt和period均為null的時候,將返回1。

4、所支援函式得資料庫:

sqlserver、mysql、oracle、postgresql、sqlite 、hive上 均支援該函式。

二、sql例項​​​​​​​二

若上面還有sql使用逗號隔開,在書寫以下語句,這裡省掉了。。。:

sum((

select coalesce (cast(sum(l2.value16) as decimal (10, 0)),0) from tmt001301l2 where l2.value4 = a.id and l2.value20 != 『00』

)) as 「裝載量」,

1、細心研究一下這條語句的含義:

coalesce (cast(sum(l2.value16) as decimal (10, 0)),0)

1、coalesce():返回引數中的第乙個非空表示式(從左向右依次類推);

2、cast 函式是乙個資料型別轉換函式

3、(cast(sum(l2.value16) as decimal (10, 0)),0) 把(cast(sum(l2.value16) as decimal (10, 0))看作是乙個字段,如果欄位l2.value16為null,則取0. 開始沒看懂0是幹嘛用的。。。

資料庫cast()函式,格式(cast as decimal)

語法:cast (expression as data_type)

引數說明:

expression:任何有效的sqserver表示式。

as:用於分隔兩個引數,在as之前的是要處理的資料,在as之後是要轉換的資料型別。 data_type:目標系統所提供的資料型別,包括bigint和sql_variant,不能使用使用者定義的資料型別。

2、cast 函式的學習:

(1).cast()函式的引數是乙個表示式,它包括用as關鍵字分隔的源值和目標資料型別。以下例子用於將文字字串』12』轉換為整型:

select cast(『12』 as int)

(2).返回值是整型值12。如果試圖將乙個代表小數的字串轉換為整型值,又會出現什麼情況呢?

select cast(『12.5』 as int)

(3).cast()函式和convert()函式都不能執行四捨五入或截斷操作。由於12.5不能用int資料型別來表示,所以對這個函式呼叫將產生乙個錯誤:

server: msg 245, level 16, state 1, line 1

syntax error converting the varchar value

'12.5' to a column of data type int.
(4).要返回乙個合法的數值,就必須使用能處理這個值的資料型別。對於這個例子,存在多個可用的資料型別。如果通過cast()函式將這個值轉換為decimal型別,需要首先定義decimal值的精度與小數字數。在本例中,精度與小數字數分別為9 與2。精度是總的數字位數,包括小數點左邊和右邊位數的總和。而小數字數是小數點右邊的位數。這表示本例能夠支援的最大的整數值是9999999,而最小的小數是0.01。

select cast(『12.5』 as decimal(9,2))

decimal資料型別在結果網格中將顯示有效小數字: 12.50

(5).精度和小數字數的預設值分別是18與0。如果在decimal型別中不提供這兩個值,sql server將截斷數字的小數部分,而不會產生錯誤。

select cast(『12.5』 as decimal)

結果是乙個整數值:12

coalesce 函式詳解

coalesce 函式 返回列表中第乙個非null表示式的值。如果所有表示式求值為null,則返回null。coalesce expression 1,expression 2,expression n 依次參考各引數表示式,遇到非null值即停止並返回該值。如果所有的表示式都是空值,最終將返回乙個...

COALESCE函式的用法

coalesce這個函式系統的用法如下 a.輸入引數為字元型別,且允許為空的,可以使用coalesce inputparameter,把null轉換成 b.輸入型別為整型,且允許為空的,可以使用coalesce inputparameter,0 把空轉換成0 c.輸入引數為字元型別,且是非空非空格的...

函式 COALESCE 函式處理空值

1.coalesce 函式介紹 這個函式主要用來進行空值處理,其引數格式如下 coalesce expression,value1,value2 valuen coalesce 函式的第乙個引數expression為待檢測的表示式,而其後的引數個數不定。coalesce 函式將會返回包括expres...