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