SQL Server中字串函數LEN 和 DATALENGTH比對

來源:互聯網
上載者:User

LEN:返回指定字串運算式的字元(而不是位元組)數,其中不包含尾隨空格。

DATALENGTH:返回用於表示任何錶達式的位元組數。

樣本1:(相同,返回結果都為5): 

  1. select LEN ('sssss')  
  2. select DATALENGTH('sssss')  

樣本2:(不相同,DATALENGTH是LEN的兩倍):  

  1. select LEN(N'sssss')  
  2. select DATALENGTH(N'sssss')  

樣本3:(不相同,DATALENGTH是LEN的兩倍多,由於LEN計算時不包含尾空格):  

  1. select LEN(N'sssss  ')  
  2. select DATALENGTH(N'sssss  ')  

樣本4:(不相同,DATALENGTH是LEN的兩倍,由於LEN計算時不包含尾空格,但包含頭部空格)  

  1. select LEN(N' sssss')  
  2. select DATALENGTH(N' sssss')  

注意:當變數為null時,LEN,DATALENGTH都為null 

  1. DECLARE @MyVar VARCHAR(10)  
  2. SET @MyVar = NULL  
  3. select LEN(@MyVar)  
  4. select DATALENGTH(@MyVar)  

 

DATALENGTH()函數返回一個用於對值進行管理的位元組數,這有助於揭示不同資料類型間的一些有趣差別。當把varchar類型傳遞給DATALENGTH()和LEN()函數時,它們將返回相同的值:

DECLARE @Value varchar(20)  SET @Value = 'abc' SELECT DATALENGTH(@Value)  SELECT LEN(@Value) 這些語句的傳回值都為3。因為varchar類型使用了3個單位元組字元來儲存三個字元的值。然而,如果使用nVarchar類型來管理相同長度的值,就要佔用多一倍的位元組:

DECLARE @Value nvarchar(20)  SET @Value = 'abc' SELECT DATALENGTH(@Value)  SELECT LEN(@Value) DATALENGTH()函數傳回值為6,因為每個使用Unicode字元集的字元都要佔用2個位元組。LEN()函數傳回值為3,因為這個函數返回字元數,不是位元組數。以下是一個有趣的測試:要儲存一個值為2的整型變數,要佔用多少個位元組?而如果要儲存一個值為20億的整型變數,又將佔用多少個位元組呢?試一下:

DECLARE @Value1 int, @Value2 int SET @Value1 = 2  SET @Value2 = 2000000000  SELECT DATALENGTH(@Value1)  SELECT LEN(@Value1)  SELECT DATALENGTH(@Value2)  SELECT LEN(@Value2) 在這兩種情況下,DATALENGTH()函數都返回4。因為int類型不論值是多少,總是使用4個位元組。LEN()函數本質上將整型值當成已轉換成字元型的資料來處理,所以,在這個例子中,它分別返回1和10,即值的位元。

本文來自CSDN部落格,轉載於:http://blog.csdn.net/Hello_World_wusu/archive/2009/10/14/4667452.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.