sql-server - 测试 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但这在我的情况下不起作用。
解决方案
您可以使用范围模式表达式进行查询:
查询带数字的记录:
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了解更多信息。
推荐阅读
- stanford-nlp - 如何使用 NLP Java 提取主语动词对象?对于每一句话
- javascript - 使用时无法向集群添加令牌
- python - 如何将所有进程转换为字符串?
- javascript - forEach 在比较选项值和返回父 id 时返回 undefined
- python - Matplotlib 散点图
- reactjs - 我可以在反应中做一个单独的淡入淡出效果组件吗
- c - 如何使用递归正确打印城市?
- javascript - 如何在 NextJs 中多次循环单个 const
- rust - 调用 setter 后,借用检查器不会让我调用 getter
- delphi - Delphi如何在使用ShellExecute时正确设置变量