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‘, ‘中‘, ‘a‘, ‘$‘, ‘¥‘ ……
位元組(Byte)是用于計量存儲容量和傳輸容量的一種計量機關,一個位元組等于8位,在UTF-8編碼中,一個英文等于一個位元組,一個漢字字元儲存需要3到4個位元組。位元組是中存儲資料的單元,一個8位的,是一個很具體的。0x01,
0x45, 0xFA……
參考如下:
1:
2:
3:
4:
5: