Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在DB2中选择包含非字母数字字符的记录_Sql_Db2 - Fatal编程技术网

Sql 在DB2中选择包含非字母数字字符的记录

Sql 在DB2中选择包含非字母数字字符的记录,sql,db2,Sql,Db2,我试图在DB2中创建一个查询,该查询将选择给定字段中包含非字母数字字符的所有记录。我在中尝试了该代码,但似乎不起作用。我需要搜索的信息是地址信息,因此空格是可以接受的,即 数据示例- 10商业街-很好,因此不要在报告中显示 10商业街-坏,因此在报告中显示 任何帮助都将非常感谢一个选项是将所有已知的可打印字符翻译成一个空白,并测试结果是否大于单个空格 select KEY_VALUE from TABLE where TRANSLATE(CHAR_COLUMN,'','ABCDEFGHIJKLM

我试图在DB2中创建一个查询,该查询将选择给定字段中包含非字母数字字符的所有记录。我在中尝试了该代码,但似乎不起作用。我需要搜索的信息是地址信息,因此空格是可以接受的,即

数据示例- 10商业街-很好,因此不要在报告中显示 10商业街-坏,因此在报告中显示


任何帮助都将非常感谢

一个选项是将所有已知的可打印字符翻译成一个空白,并测试结果是否大于单个空格

select KEY_VALUE
from TABLE
where TRANSLATE(CHAR_COLUMN,'','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890') <> '';

一个选项是将所有已知的可打印字符转换为一个空白,并测试结果是否大于一个空格

select KEY_VALUE
from TABLE
where TRANSLATE(CHAR_COLUMN,'','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890') <> '';

给我示例代码请发布您的代码,而不仅仅是链接到另一篇文章,并解释什么似乎不起作用。您链接到的文章使用正则表达式,这是DB2没有的特性。你必须想出一个不同的解决方案。我尝试过使用下面的方法。我尝试过使用:-SELECT*FROM PAYMENT WHERE NOT xmlcastxmlquery'fn:匹配$s,^[a-zA-Z0-9]*[0-9][a-zA-Z0-9]*$将长名称作为s作为int=0传递。我以前使用过xmlcast,它与另一个正则表达式配合使用,使用^[a-zA-Z]{2}[0-9]{2}确定前2个字符是否为字母,第二个2是否为数字。当我运行上述查询时,所有记录都会返回,包括不包含特殊字符或空格的记录,这两个都不应该返回给我示例代码请发布您的代码,而不仅仅是链接到另一篇文章,并解释什么似乎不起作用。您链接到的文章使用正则表达式,这是DB2没有的特性。你必须想出一个不同的解决方案。我尝试过使用下面的方法。我尝试过使用:-SELECT*FROM PAYMENT WHERE NOT xmlcastxmlquery'fn:匹配$s,^[a-zA-Z0-9]*[0-9][a-zA-Z0-9]*$将长名称作为s作为int=0传递。我以前使用过xmlcast,它与另一个正则表达式配合使用,使用^[a-zA-Z]{2}[0-9]{2}确定前2个字符是否为字母,第二个2是否为数字。当我运行上述查询时,所有记录都会返回,包括不包含特殊字符或空格的记录,这两个参数都不应该返回。如果您这样做,TRANSLATE的第三个参数应该只列出您希望接受的字符。结尾的字符,即!@$%^&*-=+/\{}[];:.,? , 应该从列表中删除。如果这样做,TRANSLATE的第三个参数应该只列出希望接受的字符。结尾的字符,即!@$%^&*-=+/\{}[];:.,? , 可能应该从列表中删除。