A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱京辉 中级黑马   /  2013-1-13 19:08  /  2703 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朱京辉 于 2013-1-16 22:28 编辑

在学习SQL的过程中,在学到字符串函数的时候,SELECT LEN('   bb   '),结果是5,为什么空格是忽略的,SQL存储的空格是不计入长度吗?疑惑?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 林嘉健 于 2013-1-13 20:23 编辑

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

楼主可以多试试看

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 许庭洲 于 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     '))
    执行完毕就能在输出结果中看到下面的执行结果:
  

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 朱京辉 于 2013-1-13 20:19 编辑
许庭洲 发表于 2013-1-13 20:07
1. 主流数据库系统都提供了计算字符串长度的函数,在MYSQL,Oracle,DB2中这个函数名称为LENGTH;
2. 而在MSSQ ...

是说只有SQL中字符串后的空格不计长度吗?
还有关于后缀空格问题,只有len()函数会忽略,在其他函数操作时候也忽略吗?是个别现象,还是SQL中字符串操作统一忽略后缀空格
回复 使用道具 举报
LEN 函数返回的是文本字段中值的长度,也就是字符的数量。空格没有计入长度 应该和字符定义的类型也有关

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
这个函数接受一个字符串类型的字段值做为参数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马