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

时间:2018-10-23 06:09:20

标签: sql sql-server

如何避免选择如下所述具有特殊符号的行。 enter image description here

2 个答案:

答案 0 :(得分:4)

我们可以使用以下 ASCII 字符范围。 CHAR(n)返回整数 ASCII 代码n

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

Refer ASCII characters

答案 1 :(得分:2)

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

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

这只会选择IDName列都包含任何特殊字符的行。特殊字符在这里定义为其他任何字母数字,下划线和连字符。