查找字符串中是否有6位数字

use*_*812 3 sql sql-server

如果查询包含等于6位数的子字符串,您如何建议在Sql Server 2010/2012中查找?

例如" agh123456 dfsdfdf"符合要求

" x123 ddd456"与要求不符,因为6位数字不连续

" lm123"与要求不符,因为只找到3位数(在要求的6位数之内)

到目前为止我遇到的问题是:SUBSTRING作为一个函数需要参数(数字大概开始的位置,这是随机的),而PATINDEX返回一个字符串中的模式的位置,但我们不知道确切的模式(它可以是任何6位数字)

任何指针或建议,非常感谢.

谢谢

Dav*_*idG 12

您可以使用LIKE运算符:

SELECT *
FROM MyTable
WHERE Mycolumn LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9]%'
Run Code Online (Sandbox Code Playgroud)