首页 > 解决方案 > 使用 Microsoft Query varchar 的 SQL Server 到 Excel 未显示

问题描述

我读过很多帖子,对特殊字符问题的最简单答案是在运行查询之前替换换行符。我试过了:

REPLACE(REPLACE(Field1, CHAR(10), ' '), CHAR(13), ' ')

我将值粘贴到 Notepad++ 中,至少我可以看到不再有任何特殊字符,我什至做了一个 TOP 1 只尝试 1 行,但是当我在 Excel 的 Microsoft Query Editor 窗口中运行相同的查询时,值来了空白可以揭示一些信息或将我引导到我可能错过的另一个帖子答案。

标签: sqlsql-serverexcelmicrosoft-query

解决方案


不漂亮,但能胜任。

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

推荐阅读