我读过很多帖子,对特殊字符问题的最简单答案是在运行查询之前替换换行符。我试过了:
REPLACE(REPLACE(Field1, CHAR(10), ' '), CHAR(13), ' ')
我将值粘贴到 Notepad++ 中,至少我可以看到不再有任何特殊字符,我什至做了一个 TOP 1 只尝试 1 行,但是当我在 Excel 的 Microsoft Query Editor 窗口中运行相同的查询时,值来了空白可以揭示一些信息或将我引导到我可能错过的另一个帖子答案。
我读过很多帖子,对特殊字符问题的最简单答案是在运行查询之前替换换行符。我试过了:
REPLACE(REPLACE(Field1, CHAR(10), ' '), CHAR(13), ' ')
我将值粘贴到 Notepad++ 中,至少我可以看到不再有任何特殊字符,我什至做了一个 TOP 1 只尝试 1 行,但是当我在 Excel 的 Microsoft Query Editor 窗口中运行相同的查询时,值来了空白可以揭示一些信息或将我引导到我可能错过的另一个帖子答案。
不漂亮,但能胜任。
CREATE Function dbo.ufn_RemoveSpecialChars (@str varchar(256)) returns varchar(256)
with schemabinding
begin
if @str is null
return null
declare @str2 varchar(256)
set @str2 = ''
declare @strlen int
set @strlen = len(@str)
declare @p int
set @p = 1
while @p <= @strlen begin
declare @code int
set @code = ascii(substring(@str, @p, 1))
if @code between 32 and 127
set @str2 = @str2 + char(@code)
set @p = @p + 1
end
if len(@str2) = 0
return null
return @str2
end