1. 程式人生 > 其它 >null和任何值都不能比較 踩坑

null和任何值都不能比較 踩坑

  • null和任何值都不能比較

  • null只能用is null 或者is not null 來判斷,不能用=或者!=來判斷

    那怎麼辦呢?

    isnull(value1,value2)

    1、value1與value2的資料型別必須一致。

    2、如果value1的值不為null,結果返回value1。

    3、如果value1為null,結果返回vaule2的值。vaule2是你設定的值。

    如果在select中就是isnull可以判斷是否是null,如果是給個預設值,isnull("欄位名","設定預設的資料")

    例如:select isnull(分數,0) from xuesheng where name='張三' 在表xuesheng中,欄位分數如果為空,結果輸出0。如果不為空,輸出欄位分數的值。

    在sql server中欄位為空的寫法,select name from A where name is null/is not null 。而不是name=null、name=' '。

    1.isnull(exper) 判斷exper是否為空,是則返回1,否則返回0

    2.ifnull(exper1,exper2)判斷exper1是否為空,是則用exper2代替

    3.nullif(exper1,exper2)如果expr1= expr2 成立,那麼返回值為NULL,否則返回值為 expr1。

    1、nvl(value1,value2)

    這個函式的意思是如果value1的值為null,那麼函式返回value2的值 ,如果value1不為空,那麼就返回value1的值。

    需要注意的是value1和value2要保持欄位型別相同。

    2、nvl2(value1,value2,value3)

    這個函式的意思是如果value1的值為null 函式返回value3 否則函式返回value2 也就是說函式永遠不會返回value1

    注意的是引數value2 value3可以是除了LONG型別之外的任意資料型別。

    3、NULLIF函式的格式如下:

    NULLIF(expr1,expr2),含義是:如果第一個引數的值等於第二個引數的值則返回空,否則返回第一個值。

我不是來改變世界的