SQL函數——LENGTH()和LENGTHB()


LENGTH()函數是比較簡單同時也是非常有用的一個函數,在此小記一下,加深印象以備后用!

1:先上實驗的例子——我新建了一張Student表,插入了若干條測試數據,如下圖所示:

2:實驗LENGTH()函數

3:實驗LENGTHB()函數

解釋一:此處的LENGTH()函數用於獲取對應字段的字符長度

解釋二:此處的LENGTHB()函數用於獲取對應字段的字節長度

解釋三:ORACLE安裝好后默認的NLS_DATE_FORMAT參數值為DD-MON-RR

 

OK,上面的兩個函數和對應的實驗結果已做了相應的解釋,得出了一個使用的小技巧:

可以使用LENGTH(‘STRING’)LENGTHB(‘STRING’)是否相等,來判斷字符串中否含有中文!

當然,也可用來過濾一定長度的字段的數據!

以下是需要稍微注意點的地方:

1:使用雙引號引用且使用LENGTH()或LENGTHB()時報錯,而使用單引號且使用這兩個函數時返回NULL

 

 

 

2:當使用單引號且字符為空時,使用LENGTH()或LENGTHB()這兩個函數,則返回空字符的個數,所以使用這兩個函數之前最好先使用TRIM()函數過濾一下

3:使用這個簡單的SQL語句來展示DD-MON-RR是什么時間格式

4:對於不同的數據庫,由於字符集的不同,LENGTHB得到的值可能不一樣。比如:AMERICAN_AMERICA.AL32UTF8是使用三個字節來定義一個漢字的!

 

5:字符與字節(源自百度百科)

字符是指計算機中使用的字母、數字符號,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。字符是人們使用的記號,抽象意義上的一個符號。 '1', '中', 'a', '$', '¥' ……

字節(Byte)是計算機信息技術用於計量存儲容量和傳輸容量的一種計量單位,一個字節等於8位二進制數,在UTF-8編碼中,一個英文字符等於一個字節,一個漢字字符儲存需要3到4個字節字節是計算機中存儲數據的單元,一個8位的二進制數,是一個很具體的存儲空間。0x01, 0x45, 0xFA……

參考如下:

1:http://download.oracle.com/docs/cd/E11882_01/server.112/e26088/functions088.htm#SQLRF00658

2:http://blog.csdn.net/tianlesoftware/article/details/6863797

3:http://blog.sina.com.cn/s/blog_687264e00100kzxw.html

4:http://blog.163.com/qiangyongbin2000@126/blog/static/77517819201212911256980/

5:http://www.blogjava.net/decode360/archive/2008/10/28/286814.html

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM