小编And*_*son的帖子

在SQL Server(查询分析器)中查询查询结果中隐藏字符的最佳方法是什么?

在尝试识别错误数据时(通常需要手动查看和删除),我想要一种简单的方法来查看隐藏的字符,例如TAB,空格,回车符和换行符.这有内置的方式吗?

在这里关于stackoverflow的类似问题中,关于Oracle,建议使用DUMP(fieldname)函数,但我不知道即使SQL Server中存在相应的函数,这是否会使事情变得更容易,因为我需要查看字符在他们的背景下.

我能提出的最好的想法是用可见的替换预期的隐藏字符,如下所示:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(myfield, ' ', '?'), CHAR(13), '[CR]'), CHAR(10), '[LF]'), CHAR(9), '[TAB]') FROM mytable

有没有更好的办法?我不喜欢这种方式,因为可能有其他不太常见的隐藏字符,我没有考虑,如垂直TAB等...打开"显示隐藏的字符",你几乎可以在任何文本编辑器中,在SQL Server查询分析器中这将是一个很好的功能,所以我几乎可以期望它可以在SQL服务器中以某种方式完成...或者至少有人有比我更好的想法,以显示这种白色空间信息.

我只是注意到有一种内置的方式来查看"空白",而不是在SQL查询分析器中,而是在曾经是SQL Enterprise管理器的界面部分.右键单击SQL Management Studio对象资源管理器树中的表,然后选择"编辑前200行".在结果中,空白区域(至少CR LF)作为空方块可见.

sql-server hidden query-analyzer

34
推荐指数
5
解决办法
9万
查看次数

是否在SQL Server T-SQL patindex范围内不允许使用CHAR(14)?

在TSQL patindex中CHAR(13)或CHAR(14)有什么问题?一旦我在模式中包含CHAR(14),我就找不到记录.寻找答案,我刚从2009年找到了我自己的问题(未答复)(此处:http://www.sqlservercentral.com/Forums/Topic795063-338-1.aspx).

这是另一个简单的测试,以显示我的意思:

/* PATINDEX TEST */
DECLARE @msg NVARCHAR(255)
SET @msg = 'ABC' + NCHAR(13) + NCHAR(9) + 'DEF'

DECLARE @unwanted NVARCHAR(50)
-- unwanted chars in a "chopped up" string
SET @unwanted = N'%[' + NCHAR(1) + '-' + NCHAR(13) + NCHAR(14) + '-' + NCHAR(31) + ']%'
SELECT patindex(@unwanted, @msg)
Run Code Online (Sandbox Code Playgroud)

- 结果:4

-- NOW LET THE unwanted string includ the whole range from 1 to 31


   SET @unwanted = '%['+NCHAR(1)+'-'+NCHAR(31)+']%' -- -- As soon …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server pattern-matching patindex

1
推荐指数
1
解决办法
1345
查看次数