首页 > 解决方案 > 测试 varchar 字段是否有任何数字的性能优化方法(SQL Server 2012)

问题描述

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

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

标签: sql-server

解决方案


您可以使用范围模式表达式进行查询:

查询带数字的记录:

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了解更多信息。


推荐阅读