天天看點

sql-isnull方法的使用

在程式開發過程中,程式員用到最多的估計就是資料庫了,幾乎在任何一個地方都會和資料庫打交道,資料庫的增加,删除,更新,查詢,都必須用到sql語句或者是存儲過程,歸根結底還是試用sql資料庫,但是在敲寫相關sql語句時,我們經常會遇到一些空的字元串或者是字段,這就給我們對資料庫造成一定的麻煩,系統經常會提示“某值null不能轉換”“插入的值不能為空”等等諸如此類的提示,isnull函數會幫助你搞定這些小菜。

Isnull 函數主要作用是将為空的值替換為指定值,如果不為空傳回檢查類型的傳回值,isnull的文法:

Isnull (check_expression , replacement_value)

例一:

select isnull(studentid,100) from student_info

解釋:這個執行個體的意思就是查出student_info表中字段為studentid的值,如果字段studentid值為空就在字段studentid中添加100,或者你可以動态的向這個空字段添加值。

private int GetNewBillID()

        {

            int id = Convert.ToInt32(sh.QueryValue(sql));

            if (id == 0)

            {

                return 1000;

            }

            else

                return id + 1;

        }

這個私有方法就是查詢表Vs_ICChange中FBillId字段,如果FBillId字段為空就換值為0,通過執行語句得到數值id,在對id資料進行判斷,如果id=0,直接傳回id=1000,如果id已經有數值的話,直接在原來的基礎上加一,再将傳回的id數值之間插入到相關FBillId字段即可,比如:

Insert into Vs_ICChange(FBillId) values(‘”+id+”’);

這樣就可以在沒有數值的字段讓字段值實作人工自增,進而程式就不會報錯。

例二:

use test1

  insert into a(name,score)

  select name,isnull(score,100) from b

解釋:從表b中查出相關資料,然後插入到表a,如果表b中的score字段為空,則放入數值100,并插入到a表中。

本文轉自shenzhoulong  51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/441259,如需轉載請自行聯系原作者