黑马程序员技术交流社区

标题: sql中字符串问题 [打印本页]

作者: 张大福    时间: 2011-12-19 11:46
标题: sql中字符串问题
本帖最后由 张大福 于 2011-12-20 10:32 编辑

select LEN('     i     ')
这个字符串左边有5个空格,右边也有5个空格,但执行结果为6。难道sql在默认情况下是忽略字符串右边的空白吗?
请高手解决下,谢谢
作者: 李荣壮    时间: 2011-12-19 17:09
select LEN('     i     ')
select count('     i     ')
select datalength('     i     ')
这里有三个用于计算字符串长度的函数, 你比较下就知道了

下面是微软MSDN上的解释

LEN (SQL Server Compact Edition)
返回给定字符串表达式的字符数(不包括尾随空格),而不是返回字节数。

作者: 张大福    时间: 2011-12-20 10:23
李荣壮 发表于 2011-12-19 17:09
select LEN('     i     ')
select count('     i     ')
select datalength('     i     ')

很好,谢谢
作者: 王林    时间: 2011-12-20 21:50
有意思啊
作者: 黑马李果    时间: 2012-7-26 13:46
是的,经试验,sql会将右边的空格自动trim()掉,但不会忽略\t或者\n这种空白符;而且SQL的字符串默认是大小写不敏感的,如果需要区分大小写, 可在等号左边加上 COLLATE Chinese_PRC_CS_AS 。




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