天天看點

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

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

1:先上實驗的例子——我建立了一張Student表,插入了若幹條測試資料,如下圖所示:

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

2:實驗LENGTH()函數

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

3:實驗LENGTHB()函數

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

解釋一:此處的LENGTH()函數用于擷取對應字段的字元長度

解釋二:此處的LENGTHB()函數用于擷取對應字段的位元組長度

解釋三:ORACLE安裝好後預設的NLS_DATE_FORMAT參數值為DD-MON-RR

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

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

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

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

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

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

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

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

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

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

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

4:對于不同的資料庫,由于字元集的不同,LENGTHB得到的值可能不一樣。比如:AMERICAN_AMERICA.AL32UTF8是使用三個位元組來定義一個漢字的!

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

5:字元與位元組(源自百度百科)

是人們使用的記号,抽象意義上的一個。

‘1‘, ‘中‘, ‘a‘, ‘$‘, ‘¥‘ ……

位元組(Byte)是用于計量存儲容量和傳輸容量的一種計量機關,一個位元組等于8位,在UTF-8編碼中,一個英文等于一個位元組,一個漢字字元儲存需要3到4個位元組。位元組是中存儲資料的單元,一個8位的,是一個很具體的。0x01,

0x45, 0xFA……

參考如下:

1:

2:

3:

4:

5: