sql - 根据字段中的数据结构确定要返回的记录
问题描述
如果我有一个包含许多值的字段,例如
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]%'
推荐阅读
- c++ - X86 架构 - 使用 unsigned long long 设置向量大小
- java - 使用 Viewpager 显示来自网络的图像,但它没有显示给我,有人帮我解决这个问题
- javascript - 如何保存 JavaScript 输出并同时显示它们?
- android - 如何在我的gridview builder列表末尾添加“添加更多”按钮,我不断收到错误消息
- excel - 在 Excel 中发送 cmd 消息
- r - R逻辑回归 - 错误消息
- python - Pyinstaller python to .exe没有在命令行界面上显示任何输出
- php - 每次打开新终端时如何让laravel自动运行?
- python - 在哪里插入重试循环语句?
- python-3.x - pandas 切割左包边独占 bin 边缘