2013/12/2

資料類型優先順序 Data Type Precedence (Transact-SQL)

當一個運算子結合兩個不同資料類型的運算式時,資料類型優先順序的規則,會指定將低優先順序的資料類型,轉換為高優先順序的資料類型。 如果轉換不是支援的隱含轉換,就會傳回錯誤。 如果這兩個運算元運算式的資料類型相同,則作業結果就含有該資料類型。

eg. Table [T1] 有 Column [C1] 設計為 varchar, 存放數字資料
      比對條件下 select * from T1 where c1 = 1
      SQL Server 需先將 C1 欄位都先轉型成int (此時也有可能發生轉型失敗)才進行比對.


SQL Server 會使用下列資料類型優先順序:

  1.     使用者自訂資料類型 (最高)
  2.     sql_varian t
  3.     xml
  4.     datetimeoffset
  5.     datetime2
  6.     datetime
  7.     smalldatetime
  8.     date
  9.     time
  10.     float
  11.     real
  12.     decimal
  13.     money
  14.     smallmoney
  15.     bigint
  16.     int
  17.     smallint
  18.     tinyint
  19.     bit
  20.     ntext
  21.     text
  22.     image
  23.     timestamp
  24.     uniqueidentifier
  25.     nvarchar (包括 nvarchar(max) )
  26.     nchar
  27.     varchar (包括 varchar(max) )
  28.     char
  29.     varbinary (包括 varbinary(max) )
  30.     binary (最低)

沒有留言: