1. 程式人生 > >Access與SQL中的IsNull(),IS NULL的區別

Access與SQL中的IsNull(),IS NULL的區別

函數 led table end lac 一個 repl 入參 sele

Access也有IsNull函數,但意義和參數卻和T-SQL中的不同。

在T-SQL(也就是SQL Server所支持的SQL語言)中,IsNull的作用是把空值替代成指定的值。然而在Access中,IsNull的作用僅僅是判斷是否為空值,而且參數的個數也和T-SQL中的不一樣,只有一個輸入參數。

慶幸的是Access支持iif,所以可以這樣去替代:
Select iif(IsNull( express ), value1, value2 ) From TableName

iif(IsNull( express ), value1, value2 )
相當於:
If express Is Null Then

Return value1
Else
Return value2
End if

舉個例子,在SQL Server中:
select IsNull(int_Filed1, 0) from Table1

換作Access,則應該被改寫為:
select iif( IsNull(int_Filed1), 0, int_Filed1 ) from Table1

在SQL中is null 和函數 IsNull是有區別的。 前者用於條件裏面判斷是否為NULL,而後者
使用指定的替換值替換 NULL。
————————————————————————————————

ISNULL
使用指定的替換值替換 NULL。
語法
ISNULL ( check_expression , replacement_value )
參數
check_expression
將被檢查是否為 NULL的表達式。check_expression 可以是任何類型的。
replacement_value
在 check_expression 為 NULL時將返回的表達式。replacement_value 必須與 check_expresssion
具有相同的類型。
返回類型
返回與 check_expression 相同的類型。
註釋
如果 check_expression 不為 NULL,那麽返回該表達式的值;否則返回 replacement_value。

Access與SQL中的IsNull(),IS NULL的區別