关于数据库表去掉空格的问题

kk_lucky 2014-01-17 02:29:39
数据库有张表的字段时varchar类型的,值本来只有8个数字,结果用len函数查长度是20,显示到页面上有乱码,现在这些空格用rtrim和ltrim都去不掉,查询后面这些空格的ascii值为0,但是用replace(value,char(0),'')也去不掉这些空格。
请问各位有什么高见?
...全文
188 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-01-17
  • 打赏
  • 举报
回复
那就先重新初始化一次,然后看看这个生成数据的脚本有没有什么问题
kk_lucky 2014-01-17
  • 打赏
  • 举报
回复
引用 10 楼 DBA_Huangzj 的回复:
导回去是为了初始化,我猜你是不是字符集的问题,而且没有用nvarchar这些类型来保证数据不乱吗
估计是生成数据的时候的问题吧,同一张表其他的value都没有问题
發糞塗牆 2014-01-17
  • 打赏
  • 举报
回复
导回去是为了初始化,我猜你是不是字符集的问题,而且没有用nvarchar这些类型来保证数据不乱吗
kk_lucky 2014-01-17
  • 打赏
  • 举报
回复
引用 8 楼 DBA_Huangzj 的回复:
那导出来再导进去,导进去的过程看看有没有选项可以去掉空格
这样好麻烦啊,因为后面还会生成数据的,当然乱码只会在ie上面出现,用火狐没有问题
發糞塗牆 2014-01-17
  • 打赏
  • 举报
回复
那导出来再导进去,导进去的过程看看有没有选项可以去掉空格
kk_lucky 2014-01-17
  • 打赏
  • 举报
回复
引用 5 楼 yupeigu 的回复:
照理,应该是可以replace掉的,估计还有其他的无法显示的字符把:

select value,LEN(value),len(replace(value,char(0),''))
from 
(
select REPLICATE(char(0),8) value
)t
/*
value	(无列名)	(无列名)
	8	0
*/
我觉得也很奇怪,ascii码值明明是0,但是用update table set value=left(value,len(value)-1) where right(value,1)=char(0)每次可以去掉一个空格
kk_lucky 2014-01-17
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
把数据导出来看看有什么异常?
数据导出来倒看不出来有什么问题,不过在数据库查询显示到页面上能看到后面有乱码
LongRui888 2014-01-17
  • 打赏
  • 举报
回复
照理,应该是可以replace掉的,估计还有其他的无法显示的字符把:

select value,LEN(value),len(replace(value,char(0),''))
from 
(
select REPLICATE(char(0),8) value
)t
/*
value	(无列名)	(无列名)
	8	0
*/
Yole 2014-01-17
  • 打赏
  • 举报
回复
引用 楼主 mnvad 的回复:
数据库有张表的字段时varchar类型的,值本来只有8个数字,结果用len函数查长度是20,显示到页面上有乱码,现在这些空格用rtrim和ltrim都去不掉,查询后面这些空格的ascii值为0,但是用replace(value,char(0),'')也去不掉这些空格。 请问各位有什么高见?
发数据贴出来写,看看还有啥办法处理!!
發糞塗牆 2014-01-17
  • 打赏
  • 举报
回复
把数据导出来看看有什么异常?
kk_lucky 2014-01-17
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
如果是“数字”,直接换成int类型来存放试试
不能转换成int的,因为还有其他字段的值
發糞塗牆 2014-01-17
  • 打赏
  • 举报
回复
如果是“数字”,直接换成int类型来存放试试

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧