Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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_Data Cleaning - Fatal编程技术网

需要一种使用SQL查询查找数据中特殊字符的方法吗

需要一种使用SQL查询查找数据中特殊字符的方法吗,sql,sql-server,regex,data-cleaning,Sql,Sql Server,Regex,Data Cleaning,我试图在我的任何字段中查找不在a-zA-Z0-9范围内的特殊字符。但是,如果我尝试此查询: select Name from table where Name like '%[?]%' 我有两张唱片: 修正了吗 这就是我想要的。但是,由于我不知道特殊字符是什么,我需要排除具有混合字符的数据: select Name from table where Name NOT like '%[a-zA-Z0-9]%' 因为这排除了a-zA-Z0-9中的所有记录,所以我只得到: 但我还需要得

我试图在我的任何字段中查找不在a-zA-Z0-9范围内的特殊字符。但是,如果我尝试此查询:

select Name from table where Name like '%[?]%'
我有两张唱片:

  • 修正了吗
这就是我想要的。但是,由于我不知道特殊字符是什么,我需要排除具有混合字符的数据:

select Name from table where Name NOT like '%[a-zA-Z0-9]%'
因为这排除了a-zA-Z0-9中的所有记录,所以我只得到:

但我还需要得到“固定”的结果。我需要得到合并了特殊字符的数据

我有点不知道怎么做。我见过用shell脚本或“vi”(LIST)来实现这一点,但在SQL中这并不容易

有人解决了这个问题吗

LIKE '%[^0-9a-zA-Z]%'
数字(0-9)、小写字母(a-z)、大写字母(a-z)。“^”使之成为这些事情中的“非”之一

数字(0-9)、小写字母(a-z)、大写字母(a-z)。“^”使“非”成为以下内容之一

请尝试以下代码:

select Name from table where Name like '%[^0-9a-zA-Z ]%'
请尝试以下代码:

select Name from table where Name like '%[^0-9a-zA-Z ]%'

谢谢你的回复。我试过你的建议,但还是得到了更多的结果。然而,看起来您可以通过排除得到非常具体的信息。最后,我根据我得到的数据添加了结果

像这样:

select Name from table where Name LIKE '%[^0-9a-zA-Z() -._/\:=,]%'
这终于给了我想要的东西。尽管我现在面临的新问题是如何抑制[]方括号,这显然也存在于数据中:

  • HP PCI 10/100Base TX核心[100Base-TX,FD,自动,TT=1500]
  • 修正了吗
将这些括号添加到查询中会打破数组边界:

'%[^0-9a-zA-Z() -._/\:=,**[]**]%' 

然而,这是我能处理的。只要我没有得到“所有”的数据

谢谢您的回复。我试过你的建议,但还是得到了更多的结果。然而,看起来您可以通过排除得到非常具体的信息。最后,我根据我得到的数据添加了结果

像这样:

select Name from table where Name LIKE '%[^0-9a-zA-Z() -._/\:=,]%'
这终于给了我想要的东西。尽管我现在面临的新问题是如何抑制[]方括号,这显然也存在于数据中:

  • HP PCI 10/100Base TX核心[100Base-TX,FD,自动,TT=1500]
  • 修正了吗
将这些括号添加到查询中会打破数组边界:

'%[^0-9a-zA-Z() -._/\:=,**[]**]%' 

然而,这是我能处理的。只要我没有得到“所有”的数据

您想要的函数是patindex。您想要的函数是patindex。使用\或\\
'%[^0-9a-zA-Z()-。\/:=,\[\]%'
使用\或\\
'%[^0-9a-zA-Z()-。\/:=,\[\]%.