coalesce 返回多個值中的非空值

2021-06-23 07:10:10 字數 2503 閱讀 4013

coalesce (expression_1, expression_2, ...,expression_n)依次參考各引數表示式,遇到非null值即停止並返回該值。如果所有的表示式都是空值,最終將返回乙個空值。使用coalesce在於大部分包含空值的表示式最終將返回空值。

1基本資訊

▪ 語法

▪ 引數

▪ 返回型別

▪ 作用

▪ 注釋

2示例

3基本概括

▪ 詞典解釋

▪ 網路釋義

注意:連線操作符「||」是乙個值得注意的例外。

例如,空值加任何值都是空值,空值 乘任何值也都是空值,依此類推。

expression

任何型別的

表示式。

n表示可以指定多個

表示式的

佔位符。所有表示式必須是相同型別,或者可以隱性轉換為相同的型別。

資料庫

mysql

將相同的值作為 expression

返回。返回表示式中第乙個非空表示式,如有以下語句:

select coalesce(null,null,3,4,5) from

dual 其

返回結果為:3

如果所有自變數均為 null,則 coalesce

返回 null 值。

coalesce(expression1,...n) 與此 case 函式等價:

case

when (expression1 is not null) then expression1

...when (expressionn is not null) then expressionn

else null

在下面的示例中,顯示包含三列有關某個雇員每年工資收入資訊的 wages 表:hourly_wage、salary 和 commission。但是,每個雇員只能接受一種付款方式。若要確定支付給所有雇員的工資總額,請使用 coalesce 函式接受在 hourly_wage、salary 和 commission 中找到的非

空值。set nocount on

gouse master

if exists (select table_name from information_schema.tables

where table_name = 'wages')

drop table wages

gocreate table wages

(emp_id tinyint identity,

hourly_wage decimal null,

salary decimal null,

commission decimal null,

num_sales tinyint null)go

insert wages values(10.00, null, null, null)

insert wages values(20.00, null, null, null)

insert wages values(30.00, null, null, null)

insert wages values(40.00, null, null, null)

insert wages values(null, 10000.00, null, null)

insert wages values(null, 20000.00, null, null)

insert wages values(null, 30000.00, null, null)

insert wages values(null, 40000.00, null, null)

insert wages values(null, null, 15000, 3)

insert wages values(null, null, 25000, 2)

insert wages values(null, null, 20000, 6)

insert wages values(null, null, 14000, 4)

goset nocount off

goselect cast(coalesce(hourly_wage * 40 * 52,

salary,

commission * num_sales) as money) as 'total salary'

from wages

go下面是

結果集:

total salary

------------

20800.0000

41600.0000

62400.0000

83200.0000

10000.0000

20000.0000

30000.0000

40000.0000

45000.0000

50000.0000

120000.0000

56000.0000

**:

sp executesql返回多個值

declare sql nvarchar 2000 declare cc int declare ss int select sql n select c select count from yg select s select sum b id from yg execute sp execute...

從函式中返回多個值的方法

原文 第一種方法是利用全域性變數,因此根本不用返回,只要直接給全域性變數賦值即可。例 dim intnumber 1 intnumber 1 40 dim intnumber 2 intnumber 2 80 public sub passvalues intnumber 1 intnumber 1...

方法out(返回多個值)

static void main string args foreach int s in intnum 遍歷,自己看一下隨機數組元素後的陣列 int result 定義乙個變數,用於接收陣列的和 int max 用於接收陣列的最大值 int min 用於接收陣列的最小值 result comput...