我正试图摆脱数据库中的一些不良字符。我现在正在处理的行以子弹和空格开始。但是,我的where子句与所讨论的行不匹配。我怎样才能得到一个匹配?这就是我目前正在尝试的。
update Skill
set Name = substring(Name, 3, 50)
where Name like char(150) + ' %'
答案 0 :(得分:1)
如评论中所述,您可以使用ASCII()来获取您要查找的字符的代码,然后在更新中使用该代码。
UPDATE Skill
set Name = substring(Name, 3, 50)
WHERE LEFT(name,1) = CHAR(149)
答案 1 :(得分:1)
也许您没有捕获正确的ASCII值。这是一种使用类似方法的unicode方法。
declare @table table ([Name] nvarchar(64))
insert into @table
values
('- some data')
select
UNICODE(left([Name],1)) --this will tell you what VALUE to use in the where clause
,NCHAR(UNICODE(left([Name],1)))
from @table
update @table
set [Name] = substring([Name], 3, 50)
where UNICODE(left([Name],1)) = 45 --use the appropriate UNICODE values here
select * from @table