返回字段仅包含非字母数字字符的sql行
我需要找出sql server表中特定字段中有多少行只包含非字母数字字符返回字段仅包含非字母数字字符的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-
我认为这是一个正则表达式,我需要按照[^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]”不同。