由於null值是未知的,它可能會弄亂相關**-sql server提供了函式來處理**中的null值,
null函式
函式名描 述
isnull
isnull檢測表示式是否為null,如果是的話替換null值為另外乙個值
coalesce
coalesce函式返回指定表示式列表的第乙個非null值
nullif
當指定的兩個表示式有相同值的時候,nullif返回null值,否則返回第乙個表示式的值下面的幾個技巧會演示這些函式。
1.用另乙個值替換null值
isnull驗證表示式是否為null,如果是的話,用另乙個值替換null值。
示例:任何null值都會被替換為另外的值:
2.使用isnull進行靈活的搜尋
示例1:如何在變數可能有或沒有填充的情況下在查詢中進行靈活、動態的搜尋。首先,宣告了3個區域性搜尋變數productid- startdate和standardcost,然後,查詢以根據所有、一些或者0個引數來返回結果。
use adventureworks
go--用於搜尋的區域性變數
declare @productid int
declare @startdate datetime
declare @standardcost money
--只使用了@productid
示例2:通過最小和最大的standardcost範圍來進行搜尋:
use adventureworks
go--用於搜尋的區域性變數
declare @productid int
declare @minstardardcost money
declare @maxstandardcost money
set @minstardardcost=3.3963
set @maxstandardcost=10.0000
select productid,startdate,standardcost
from production.productcosthistory
where productid=isnull(@productid,productid) and
standardcost between isnull(@minstardardcost,standardcost) and
isnull(@maxstandardcost,standardcost)
order by standardcost
3.返回表示式列表中第乙個非null值
coalesce函式從提供的表示式列表中返回第乙個非null值。語法是:
coalesce(expression [ ,..n】,
示例:使用coalesce來返回第乙個出現的非null值:
4.當兩個表示式相等的時候返回null值,否則返回第乙個表示式
當提供的兩個表示式有相同值的時候,nullif返回null值;否則返回第乙個表示式。
示例:使用nullif來運算兩個表示式。如果兩個表示式相等,null值會被返回;否則會返回第乙個運算的表示式:
SqlServer2008例項15高階資料修改技術
目錄 1.使用top分塊修改資料 2.在一條語句中執行insert update和delete use adventureworks go 建立乙個示例刪除表 select into production.example billofmaterials from production.billofm...
SqlServer2008例項19事務 鎖定和併發
隔離性 isolation 是acid中的乙個屬性。事務隔離是指由某個事務作出的修改能被資料庫產生的其他事務看見的程度 例如在資料庫訪問併發的條件下 對於最高端的隔離,每乙個事務產生就好像在同一時間只有 乙個事務存在一樣,它看不到其他事務作出的修改。對於最低階的隔離,任何事務進行的操作,無論是否提交...
SqlServer2008例項27管理超大型表
sql server表分割槽功能和檔案組的放置.表分割槽提供了內建的方法來水平劃分表 索引中的資料,同時要管理乙個邏輯物件。水平分割槽是指每乙個分割槽都有同樣數量的列,只是減少了行的數量。分割槽能使超大型表 索引的管理變得簡單,減少載入時間,改善查詢時間,並允許更小的維護視窗。sql server ...