空格去不掉,且无法查询的问题

waterplm 2008-04-08 10:38:02
从EXECL表导入sqlserver里,出现空格,数据类型nvarchar,在原数据里是没有空格的,用replace,ltrim,rtrim都无法去掉,要命的是无法查询,
如:数据为 ‘edr ',字段 name,表contact.用 select * from contact where name=‘edr '或select * from contact where name=‘edr'
都无法查询。用select * from contact where name like‘edr%'则可以。求去空格方法
...全文
138 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterplm 2008-04-08
  • 打赏
  • 举报
回复
好的,可以了
wangxuelid 2008-04-08
  • 打赏
  • 举报
回复
不一定是空格,把字符从企业管理器里粘出来,然后
select ascii(' 这个空白字符')看看ascii码是多少.

得到之后,
update tb set x=replace(x,char(刚才得到ascii码),'')
ojuju10 2008-04-08
  • 打赏
  • 举报
回复

是不是有回车或者换行

昵称被占用了 2008-04-08
  • 打赏
  • 举报
回复
全角空格
TAB
回车
换行

全给替换了就应该可以了
昵称被占用了 2008-04-08
  • 打赏
  • 举报
回复
Try:

select * from contact where replace(replace(replace(replace (name,'
','')
,' ','')
,' ','')
,char(9),'')='edr'

青锋-SS 2008-04-08
  • 打赏
  • 举报
回复
全角的字符或者其它不可见字符
fcuandy 2008-04-08
  • 打赏
  • 举报
回复
不一定是空格,把字符从企业管理器里粘出来,然后
select ascii(' 这个空白字符')看看ascii码是多少.

得到之后,
update tb set x=replace(x,char(刚才得到ascii码),'')
wzy_love_sly 2008-04-08
  • 打赏
  • 举报
回复
或用ltrim()和rtrim()
wzy_love_sly 2008-04-08
  • 打赏
  • 举报
回复
select * from contact 
where replace(name,' ','')=‘edr'


34,838

社区成员

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

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