2

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

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

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

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

当我使用命令时

Select userid from users where userid='akasa  '.

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

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

4

2 回答 2

3

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

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

SUBSTRING

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

例如

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

会准确地告诉你第 6 个字符是什么。

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

这是一个ascii表供参考。

于 2013-09-04T08:01:08.913 回答
0

我首先要问你为什么想知道它是什么。如果目的是简单地摆脱它或将其变成其他东西,则可以选择该行:

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

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

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

于 2013-09-04T07:46:37.683 回答