我在employee表中有一个名称列。我希望看到所有员工姓名的字母不是字母。什么是最好的查询?对于非字母表名称字段的SQL查询
另一个要求:返回所有甚至没有一个字母表的名字。
注意:在这种情况下,任何其他英文字母不被视为字母表。文本'AndréMüller'在我的场景中有一些非字母字符。
DECLARE @Employee TABLE (EmpID INT, EmpName VARCHAR(1000))
INSERT INTO @Employee (EmpID, EmpName) VALUES(1,'André Müller')
INSERT INTO @Employee (EmpID, EmpName) VALUES(2,'Lijo')
INSERT INTO @Employee (EmpID, EmpName) VALUES(3,'88')
INSERT INTO @Employee (EmpID, EmpName) VALUES(4,'[email protected]#')
INSERT INTO @Employee (EmpID, EmpName) VALUES(5,'é ü')
Aproach 1和Approach 2都在工作(感谢发布答案的人)。 哪个更好?为什么?
--Aproach 1
SELECT * FROM @Employee WHERE EmpName COLLATE Latin1_General_CI_AS LIKE '%[^a-z]%'
--Approach 2
SELECT * FROM @Employee WHERE EmpName LIKE '%[^a-zA-Z]%'
感谢
Lijo
定义“字母表”。不清楚您是否希望将其他字母视为字母。 –
感谢您帮助澄清问题。字母表在上面定义。 – Lijo
参考:http://stackoverflow.com/questions/7157389/return-sql-rows-where-field-contains-only-non-alphanumeric-characters – Lijo