SQL查询,其中列包含除数字、逗号或空格以外的字符

SQL查询,其中列包含除数字、逗号或空格以外的字符,sql,tsql,sql-server-2008-r2,Sql,Tsql,Sql Server 2008 R2,我曾经尝试过PATINDEX,也涉足过RegEx,但我想做的只是查询特定列中除数字、逗号或空格以外的字符所在的行 这些都很好: 740 79783 00830,01512 77727 52256, 52264, 00122 但我还想找到别的东西。比如: N/A TBA 101A 12345.11111 一个正则表达式能做到这一点吗?我能将PATINDEX的进行分组吗?我不知道从哪里开始 不确定这是否适用于您的版本,但请尝试: WHERE (particular_column REGEXP '

我曾经尝试过PATINDEX,也涉足过RegEx,但我想做的只是查询特定列中除数字、逗号或空格以外的字符所在的行

这些都很好:

740
79783
00830,01512
77727
52256, 52264, 00122
但我还想找到别的东西。比如:

N/A
TBA
101A
12345.11111

一个正则表达式能做到这一点吗?我能将PATINDEX的进行分组吗?我不知道从哪里开始

不确定这是否适用于您的版本,但请尝试:

WHERE (particular_column REGEXP '[^0-9\s,]')

TSQL对正则表达式的支持有限。若您知道无效字符列表,如字母、小数运算符,则以下操作有效

select * from sample 
where val NOT like '%[a-zA-Z.]%'

TBA和101A如何与其他字符的大小写匹配?TBA和101A只不过是字母和数字。你在哪里看到它们等同于N/A和12345.11111,其中有一个斜线和一个点?它们只是示例。我想象用户在输入数据时会用到这些东西。这个正则表达式可以像SQL Server一样工作,但是如果OP想要像“TBA”这样的输出,它只不过是字母,那么就不会了。正则表达式不适用于SQL Server,它也是一个MySQL操作符,也适用于fiddle!