特殊字符在数据库中不可见

时间:2013-09-04 07:43:00

标签: sql-server sql-server-2008

我的数据字段中有一些特殊字符。我需要知道它是什么。我知道这不是空间。

选择查询会返回akasa和akasa。在定义的主列上有2个相同的条目。

Select userid from users where userid like 'akasa%'.

当我在查询中使用len函数时,它显示长度为5和7.这意味着它们是不同的值。

当我使用命令

Select userid from users where userid='akasa  '.

它没有显示任何意味着它不是空间的东西。

所以,我意识到有两个不可见的特殊字符,我需要知道它们是什么?我可以用什么来检测它们?

2 个答案:

答案 0 :(得分:3)

要检查单个字符,您可以使用ASCII

  

返回字符表达式最左边字符的ASCII代码值。

SUBSTRING

  

返回字符,二进制,文本或图像表达式的一部分

E.g。

SELECT ASCII(SUBSTRING(userid,6,1))

将准确地告诉你第6个角色是什么。

如果我不得不猜测,我猜你会找到回车和换行(ASCII值13,10)

以下是ascii table供参考。

答案 1 :(得分:0)

我首先会问为什么你想知道它是什么。如果想要简单地将其删除或将其转换为其他内容,则可以使用以下选项来选择行:

... where userid like 'akasa%' and userid <> 'akasa'

例如,要删除它,只需将delete与该子句一起使用。

或者,如果你需要确切地知道它们是什么,那么编写一个小的Java / JDBC或C#/ ODBC程序来使用where子句检索行,你应该是能够以您想要的任何形式打印出真实的列值,例如十六进制表示。