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

原文地址:https://www.cnblogs.com/godtrue/p/3753780.html