SQL查询验证特殊字符但允许空格

时间:2013-03-07 06:58:20

标签: sql-server-2008 tsql

在sql server中,* 我正在验证一个不允许使用特殊字符但应该允许空格的列 * e。

这是我使用的查询

select count(full_name) 
from stg_contact_details where full_name like '%[^a-Z0-9]%' 
and full_name like '% %'
  

例如:full_name = suresh krishna(可行)             full_name = suresh%krishna(工作原理)             full_name = suresh%krishna(它无法计算)

如果列中存在任何特殊字符,则应该抛出错误。但如果只有空间来,它应该忽略。

请给我一个线索。

由于 凯拉什

1 个答案:

答案 0 :(得分:0)

由于'%'在LIKE语法中具有特殊含义,因此必须将其转义。

例如:

select * from stg_contact_details 
where full_name like '%[^a-Z0-9]%' and full_name like '% %' 
and full_name not like '%@%%' escape '@'

此查询使用@作为转义字符。因此,在转义字符之后的第一个字符,它将被视为常规字符,但第一个和最后一个%被视为特殊字符。

更多:SQL LIKE,请参阅SQL LIKE条件 - 使用转义字符示例

部分