在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(它无法计算)
如果列中存在任何特殊字符,则应该抛出错误。但如果只有空间来,它应该忽略。
请给我一个线索。
由于 凯拉什
答案 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条件 - 使用转义字符示例
部分