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((1、細心研究一下這條語句的含義:select coalesce (cast(sum(l2.value16) as decimal (10, 0)),0) from tmt001301l2 where l2.value4 = a.id and l2.value20 != 『00』
)) as 「裝載量」,
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...