根据字段中的数据结构确定要返回的记录

时间:2018-11-28 19:39:43

标签: sql

如果我的字段包含很多值,例如

67495837431978432 ABC1234

和其他值

1234 Something Street

(我知道数据不应该是这样的。它不是我的数据库。无法更改。请忽略。)

如何仅返回在字段中具有前者这样的数据的记录?

我尝试过

where SUBSTRING(field, 1, 10) LIKE '%[0-9]%'

我的想法是,如果第一种类型的值以17个数字开头,而第二种类型是街道地址,其前10个字符包含许多字母,那么我应该能够检查前10个字符是否仅包含数字,并根据该字段返回该字段,而我应该只获取类似

的记录
67495837431978432 ABC1234

如我所愿。不是最干净的,但是应该适合我的情况。但这没有用。我不明白为什么。我犯了一个我没有看到的错误吗?有没有一种相对简单的更好的方法?

1 个答案:

答案 0 :(得分:0)

如果您使用的是SQL Server,并且要检查前十个字符是否为数字,则可以对字符类使用like

where field LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%'