如何在访问数据库中查找字符串中的不可打印字符?

时间:2011-09-16 07:13:02

标签: sql ms-access

我只想知道我的访问数据库列文本是否包含不可打印的字符,如空格,输入等是否存在。提前致谢。

1 个答案:

答案 0 :(得分:2)

SELECT *
  FROM MyTable
 WHERE my_col ALIKE '%' & CHR$(0) & '%'
       OR my_col ALIKE '%' & CHR$(1) & '%'
       OR my_col ALIKE '%' & CHR$(2) & '%'
       OR my_col ALIKE '%' & CHR$(3) & '%'
       ... etc ...
       OR my_col ALIKE '%' & CHR$(31) & '%';

说明:

&是'string'数据类型的连接(add)运算符。 %是通配符,可与ALIKE运算符一起使用以匹配一个或多个字符。

例如:

'CAT' ALIKE '%A%'

...会评估true,因为'CAT'包含'A'字符。

如果我们搜索可打印字符“A”,“B”和“C”,我们可以直接在代码中键入(打印)它们作为文字字符串和通配符:

( 'CAT' ALIKE '%A%'
   OR 'CAT' ALIKE '%B%'
   OR 'CAT' ALIKE '%C%' )

......实际上我们可以使用方括号内的字符范围:

'CAT' ALIKE '%[A-C]%'

对于非打印字符,我们需要使用CHR $()函数来生成它们,但我们仍然可以使用文字字符串作为通配符,这有助于使代码更具可读性。连接运算符需要将文字字符串添加到通过函数调用生成的字符串。