熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server的空值處理策略

2013-11-15 14:43:42  來源: SQL Server 

  數據完整性是任何數據庫系統要保證的重點不管系統計劃得有多好空數據值的問題總是存在本文探討了在SQL Server中處理這些值時涉及的個問題計數使用空表值以及外鍵處理
  用COUNT(*)處理空值
  
  
  
  大多數集合函數都能在計算時消除空值COUNT函數則屬於例外對包含空值的一個列使用COUNT函數空值會從計算中消除但假如COUNT函數使用一個星號它就計算所有行而不管是否存在空值
  
  如果希望COUNT函數對給定列的所有行(包括空值)進行計數請使用ISNULL函數ISNULL函數會將空值替換成有效的值
  
  
  事實上對集合函數來說如果空值可能導致錯誤結果ISNULL函數就非常有用記住在使用一個星號時COUNT函數會對所有行進行計算下例演示了空值在AVG和COUNT集合函數中的影響
  
  
  SET NOCOUNT ON
  GO
  CREATE TABLE xCount
  (pkey INT IDENTITY NOT NULL
    CONSTRAINT pk_xCount PRIMARY KEY
  Col int NULL)
  GO
  INSERT xCount (Col) VALUES ()
  GO
  INSERT xCount (Col) VALUES ()
  GO
  INSERT xCount (Col) VALUES ()
  GO
  INSERT xCount (Col) VALUES (NULL)
  GO
  SELECT AVG(Col) AvgWithoutIsNullFunctionOnCol
  AVG(ISNULL(Col)) AvgWithIsNullFunctionOnCol
  COUNT(Col) NoIsNullFunctionOnCol
  COUNT(ISNULL(Col)) UsingIsNullFunctionOnCol
  Count(*) UsingAsterisk
  FROM xCount
  GO
  DROP TABLE xCount
  GO
  
  OUTPUT:
  
  

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22244.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.