黑马程序员技术交流社区

标题: 关于SQL中字符串中空格的问题 [打印本页]

作者: 朱京辉    时间: 2013-1-13 19:08
标题: 关于SQL中字符串中空格的问题
本帖最后由 朱京辉 于 2013-1-16 22:28 编辑

在学习SQL的过程中,在学到字符串函数的时候,SELECT LEN('   bb   '),结果是5,为什么空格是忽略的,SQL存储的空格是不计入长度吗?疑惑?
作者: 林嘉健    时间: 2013-1-13 19:57
本帖最后由 林嘉健 于 2013-1-13 20:23 编辑

我记得没错的话是SQL字符串函数len 是返回指定字符串表达式的字符数,其中不包含尾随空格哦!

楼主可以多试试看
作者: 许庭洲    时间: 2013-1-13 20:07
本帖最后由 许庭洲 于 2013-1-13 20:55 编辑

1. 主流数据库系统都提供了计算字符串长度的函数,在MYSQL,Oracle,DB2中这个函数名称为LENGTH;
2. 而在MSSQLServer中这个函数的名称则为LEN;
3. LEN('   123abc   ')这个函数接受一个字符串类型的字段值做为参数,返回值为这个字符串的长度;
4。SQL存储的空格是计长度的,
     Oracle:  SELECT ‘   123abc     ',  LEN('   123abc     '),LEN(LTRIM('   123abc     '))  FROM DUAL
     MSSQLServer: SELECT '   123abc     ',LEN('    123abc     '),LEN(RTRIM('   123abc     '))
    执行完毕就能在输出结果中看到下面的执行结果:
  
作者: 朱京辉    时间: 2013-1-13 20:16
本帖最后由 朱京辉 于 2013-1-13 20:19 编辑
许庭洲 发表于 2013-1-13 20:07
1. 主流数据库系统都提供了计算字符串长度的函数,在MYSQL,Oracle,DB2中这个函数名称为LENGTH;
2. 而在MSSQ ...

是说只有SQL中字符串后的空格不计长度吗?
还有关于后缀空格问题,只有len()函数会忽略,在其他函数操作时候也忽略吗?是个别现象,还是SQL中字符串操作统一忽略后缀空格
作者: 黑马_李勇    时间: 2013-1-13 20:21
LEN 函数返回的是文本字段中值的长度,也就是字符的数量。空格没有计入长度 应该和字符定义的类型也有关
作者: 是与不是    时间: 2013-1-14 16:51
这个函数接受一个字符串类型的字段值做为参数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2