Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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行_Sql_Sql Server_Regex_Tsql - Fatal编程技术网

返回字段仅包含非字母数字字符的sql行

返回字段仅包含非字母数字字符的sql行,sql,sql-server,regex,tsql,Sql,Sql Server,Regex,Tsql,我需要找出sql server表中特定字段中有多少行只包含非字母数字字符 我认为这是一个正则表达式,我需要按照[^a-zA-Z0-9]的思路,但我不确定如果行中没有有效的字母数字字符,我需要返回行的确切语法。SQL Server没有正则表达式。它使用了相似的模式匹配语法,但不同 碰巧,你很接近。只需使用前导+尾随通配符并移动NOT WHERE whatever NOT LIKE '%[a-z0-9]%' 如果您有短字符串,您应该能够创建一些类似的模式(“[^a-zA-Z0-9]”,“[^a-

我需要找出sql server表中特定字段中有多少行只包含非字母数字字符


我认为这是一个正则表达式,我需要按照[^a-zA-Z0-9]的思路,但我不确定如果行中没有有效的字母数字字符,我需要返回行的确切语法。

SQL Server没有正则表达式。它使用了相似的模式匹配语法,但不同

碰巧,你很接近。只需使用前导+尾随通配符并移动NOT

 WHERE whatever NOT LIKE '%[a-z0-9]%'

如果您有短字符串,您应该能够创建一些类似的模式(
“[^a-zA-Z0-9]”
“[^a-zA-Z0-9][^a-zA-Z0-9]”
,…),以匹配不同长度的字符串。否则,您应该使用CLR用户定义函数和适当的正则表达式-。

这将无法正常工作,例如,
abcñxyz
将通过此函数,因为它有a、b、c。。。您需要整理或检查每个字节。

通配符不应该存在,因为他只需要非字母数字data@cjk:更正,我把“否定”放错地方了。当
which
是空字符串(
'
)时,这会查找中没有字母数字的字符串。根据规范,谓词将选择它,即不包含任何非字母数字字符。建议:
其中NULLIF(which,')与“%[a-z0-9]”不同。