DATALENGTH 和 LEN的區別

2021-06-05 04:18:18 字數 624 閱讀 5459

datalength: 返回字串的位元組長度

len: 返回字元長度

如果在sql2005中定義了如下字段, mycolumn varchar(10);

這時mycolumn只能儲存10個位元組長度的字串,

比如:'0123456789'是正確的

而'零123456789'是錯誤的,為什麼呢,因為'零'佔了兩個位元組,

所以,我們在儲存值的時候需要判斷當前的值是否大於字段定義長度:

我們一般知道,在sql中使用len這個函式獲取長度,

如果簡單的做如下處理:

if len(《值》) > 10 begin

《擷取值》

end顯然會出錯,因為len取得的字元長度(記得啊,是字元而不是位元組),所以對於上邊的'零123456789'這個字串依然是10

這時候,我們就必須使用datalength來判斷其長度啦,

對於這種判斷長度問題,處理起來倒是很麻煩,

所以呢,建議各位在建立欄位的時候直接用unicode型別吧,即nvarchar

這樣就可以直接使用len來判斷長度啦,

這樣定義還有乙個好處是在使用sql給我們提供的常規函式時,也可以暢通無阻

如: left,right,substring等

SQL中Len與DataLength區別

sql中求字串長度問題 一 len param 求字串的長度 datalength param 求字串所佔的位元組長度 二 len不返回文字之後的空格長度 而datalenth則不同 三 針對ntext text image這樣的資料型別 求長度datalenth非常有用。因為 1 這些資料型別對應...

魔法方法 getitem ()和 len

1.魔法函式簡介 在python中,如果想實現建立類似於序列和對映的類 可以迭代以及通過 下標 返回元素 可以通過重寫魔法方法的方式去實現。常見的魔法方法包括 getitem setitem delitem len 它們的函式功能為 1 getitem self,key 返回鍵對應的值 2 len ...

for迴圈 len函式和range函式的運用

函式 len 作用 返回字串 列表 字典 元組等長度 語法 len str 引數 str 要計算的字串 列表 字典 元組等 返回值 字串 列表 字典 元組等元素的長度 例項1 計算字串的長度 s hello word len s 92 計算列表的元素個數 str h e l l o len str ...