性能优化的方法,用于测试varchar字段是否具有任何数字(SQL Server 2012)

时间:2019-04-05 19:34:59

标签: sql-server

我正在对数千条记录进行数据验证。我正在寻找一种性能优化的方法来测试varchar字段是否包含1个或多个数字。例如,“ MC KINNEY”可以,但是“ MC KINNEY2”或“ 2MC KINNEY”或“ MC123KINNEY”不能。

此测试将在WHERE子句中使用,并且必须在SQL Server 2012中工作。我知道可以在SQL Server 2017中使用translate()函数:https://stackoverflow.com/a/18424718,但这不能就我而言。

1 个答案:

答案 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,以获取更多信息。