去除不可见类似空格的字符

twtiqfn 2014-03-19 10:07:25
表gshangju有字段dwmc,表中的记录在这个字段前一个空格(至少看上去是空格)我运行以下去除空格的命令
select ASCII(SUBSTRING(dwmc,1,1)) from gshangju
得到的结果
200
201
205
63


数据库里有很多记录,我怎么把这样类似空格的字符去掉呢,这到底是什么字符呢
...全文
404 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2014-03-19
  • 打赏
  • 举报
回复
还是上次的问题把。 是特殊字符导致的把
發糞塗牆 2014-03-19
  • 打赏
  • 举报
回复
dwmc的数据类型是什么?
  • 打赏
  • 举报
回复
数据去空格后都是数字的话

CREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE patindex('%[^0-9]%',@S) > 0
BEGIN
set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
END
RETURN @S
END
GO

create table gshangju (dwmc nvarchar(20))
insert into gshangju values('200 ')
insert into gshangju values('2 01')
insert into gshangju values(' 205')
insert into gshangju values(' 6 3')

select DBO.GET_NUMBER2(dwmc)
from gshangju
/*
200
201
205
63
*/
提取数字
「已注销」 2014-03-19
  • 打赏
  • 举报
回复
ltrim rtrim ....
--小F-- 2014-03-19
  • 打赏
  • 举报
回复
估计是CHAR(10),CHAR(13)
shinger126 2014-03-19
  • 打赏
  • 举报
回复
字符串中用ltrim和rtrim去不掉的空格是制表符,SQL可以直接识别制表符的。 比如 select CHARINDEX(' ','a b'),就可以返回2,在代码那里直接用tab键来输入一个制表符
t101lian 2014-03-19
  • 打赏
  • 举报
回复
create function  [dbo].[trm] (
@str varchar(1000)
) 
returns varchar(1000)
as 
begin 

declare @s  varchar(1000)
declare @i  int 
set @i=1

while @i<= datalength(@str)
 begin 
 if substring(@str,@i,1)<>''
     begin 
       select @s=isnull(@s,'')+substring(@str,@i,1)
      end
select @i=@i+1
  end

return @s
end
select dbo.trm(' 0   12 3  ')
select dbo.trm('2 01')
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0123

(1 行受影响)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
201

(1 行受影响)

twtiqfn 2014-03-19
  • 打赏
  • 举报
回复
dwmc的数据类型nvarchar 下面的命令为什么会把所有记录的dwmc字段清空,而不是把类似空格的字符去掉呢 update gshangju set dwmc=replace(dwmc,char(200),'')

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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