如何避免在sql server中选择具有特殊符号的行

如何避免在sql server中选择具有特殊符号的行,sql,sql-server,Sql,Sql Server,如何避免选择具有如下所述特殊符号的行 您可以使用SQL Server的增强型运算符,如运算符: SELECT * FROM yourTable WHERE ID NOT LIKE '%[^A-Za-z0-9_-]%' AND Name NOT LIKE '%[^A-Za-z0-9_-]%'; 这将仅选择ID和Name列均不包含任何特殊字符的行。这里的特殊字符定义为任何其他字母数字、下划线和连字符。我们可以使用ASCII字符范围,如下所示CHAR(n)返回整数的字符值ASCIIcode n SE

如何避免选择具有如下所述特殊符号的行

您可以使用SQL Server的增强型
运算符,如
运算符:

SELECT *
FROM yourTable
WHERE ID NOT LIKE '%[^A-Za-z0-9_-]%' AND Name NOT LIKE '%[^A-Za-z0-9_-]%';

这将仅选择
ID
Name
列均不包含任何特殊字符的行。这里的特殊字符定义为任何其他字母数字、下划线和连字符。

我们可以使用ASCII字符范围,如下所示
CHAR(n)
返回整数的字符值ASCIIcode n

SELECT *
FROM yourTable
WHERE ID NOT LIKE '%['+CHAR(32) +'-'+CHAR(126)+']%' 
OR Name NOT LIKE '%['+CHAR(32) +'-'+CHAR(126)+']%';

谢谢@Mudassir Hasan,您的解决方案对我有效。只有ASCII子特殊字符创建问题,所以我使用下面的查询排除了那些包含ASCII子特殊字符的记录。从ID不喜欢“%”+CHAR(26)+“%”的表中选择*