0

在 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(计数失败)

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

请给我一个线索。

谢谢凯拉什

4

1 回答 1

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 条件 - 使用转义字符示例部分

于 2013-03-07T07:20:38.950 回答