我正在对数千条记录进行数据验证。我正在寻找一种性能优化的方法来测试varchar字段是否包含1个或多个数字。例如,“ MC KINNEY”可以,但是“ MC KINNEY2”或“ 2MC KINNEY”或“ MC123KINNEY”不能。
此测试将在WHERE子句中使用,并且必须在SQL Server 2012中工作。我知道可以在SQL Server 2017中使用translate()函数:https://stackoverflow.com/a/18424718,但这不能就我而言。
答案 0 :(得分:3)
您可以使用远程模式表达式进行查询:
要查询带有数字的记录:
where fieldName LIKE '%[0-9]%'
要查询没有数字的记录:
where fieldName NOT LIKE '%[0-9]%'
请参阅此处:https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql?view=sql-server-2017#arguments,以获取更多信息。