首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 为什么我用Varchar型,但是在数据后面有些数据偷偷地给我补个空格呢? [已结贴,结贴人:iorikingdom]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:17:25 楼主
    不是说char型才补,varchar型不补么?我Insert的时候明明没有空格的
    因为上头要我查清楚原因,所以我不能简单地trim就解决了,要给他们个说法
    拜托各位兄弟,有没有遇到这种情况的?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:18:491楼 得分:5
    是不补的,看看你表结构是否确认改为varchar了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:20:082楼 得分:5
    不应该吧,偶用的时候没出现过这样的情况
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fa_ge
    • 等级:
    发表于:2007-11-28 17:20:343楼 得分:5
    应该是不会的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:20:404楼 得分:5
    varchar字符类型 为变长类型,字段的值即是插入的值。你可以跟踪一下你提交的语句是否有包含空格的。
    LZ有怀疑,可以自己做一次测试即可明白、
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fa_ge
    • 等级:
    发表于:2007-11-28 17:21:205楼 得分:5
    sp_help 表 看看这个字段是不是varchar类型
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:22:106楼 得分:5
    应该不会的。

    如果不是你的源数据中带空格,就是你的表中用的还是char类型。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 17:49:277楼 得分:5
    偷偷地给我补个空格
    -----------------------

    LZ是怎么发现后面有空格的? 是实际打印出来看到的字段长度和实际的字符数不符吗?

    用LEN()函数好好看看是不是真的加了空格

    另外在传参数的时候有没有用char类型存放过数据
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 18:07:328楼 得分:0
    我用csv导出的时候,发现后面有极少数据确实有个空格追在后面,
    大部分是没有的,正常的.....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawugui
    • 等级:
    发表于:2007-11-28 18:22:239楼 得分:5
    肯定不是varchar的问题.

    要么是你数据库改为了char,或是你插入的数据有问题.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 19:03:4210楼 得分:5
    不是类型(varchar)的问题

    你看到的结果,是数据库中的结果,还是你导出数据显示的结果
    在某些情况下,导出的数据可能会出现此问题

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 20:52:0811楼 得分:5
    应该是前端程序的问题吧.你在查询分析器中试试,一定不会的.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-28 21:18:5312楼 得分:5
    大部分没有,极少部分有```
    应该是在程序中输入的时候。有的有空格,程序中没有去掉吧。。
    而且varchar类型也不会补空格的噢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-29 13:51:5413楼 得分:5
    以我五年的经验来看,不可能,呵呵!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-29 13:59:0114楼 得分:5
    极有可能自己带进来的空格
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-29 14:05:5715楼 得分:5
    不会自动补,查一下看哪些有空格
    select * from [Table] where len([Field])>len(rtrim([Field]))
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-29 14:15:1516楼 得分:30
    SQL code
    如果你的数据库确实是VARCHAR 的话 那就是你前端程序的问题 VARCHAR 自动截断后便的空格的 create table #t(n varchar(100)) insert into #t values('a ') insert into #t values(' a') select n,[len]=len(n) from #t n len -- ---- a 1 a 6 (2 行受影响)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-11-29 14:19:5317楼 得分:0
    因为它想让你TRIM ^^
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved