我的数据字段中有一些特殊字符。我需要知道它是什么。我知道这不是空间。
选择查询会返回akasa和akasa。在定义的主列上有2个相同的条目。
Select userid from users where userid like 'akasa%'.
当我在查询中使用len
函数时,它显示长度为5和7.这意味着它们是不同的值。
当我使用命令
时Select userid from users where userid='akasa '.
它没有显示任何意味着它不是空间的东西。
所以,我意识到有两个不可见的特殊字符,我需要知道它们是什么?我可以用什么来检测它们?
答案 0 :(得分:3)
要检查单个字符,您可以使用ASCII
:
返回字符表达式最左边字符的ASCII代码值。
返回字符,二进制,文本或图像表达式的一部分
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
子句检索行,你应该是能够以您想要的任何形式打印出真实的列值,例如十六进制表示。