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



如果我有一个包含许多值(如(的字段

67495837431978432 ABC1234

以及其他值,如

1234 Something Street

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

如何才能像前者一样只返回在该字段中有数据的记录?

我试过

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

我的想法是,如果第一种类型的值以17个数字开头,而下一种类型是前10个字符中有许多字母的街道地址,我应该能够检查前10个字母是否只包括数字,并在此基础上返回字段,我应该只返回像这样的记录

67495837431978432 ABC1234

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

如果您使用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]%'

最新更新