如何在执行select之前格式化where子句列中的数据?

hof1towb  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(271)

我正在使用已存储数据的microsoft sql server。在我的一个表中,我可以找到如下数据:

+--------+------------+
| id     | value      |
+--------+------------+
| 1      | 12-34      |
| 2      | 5678       |
| 3      | 1-23-4     |
+--------+------------+

我意识到值列在插入时格式不正确。我试图实现的是通过给定的值获得id:

SELECT d.id FROM data d WHERE d.value = '1234';

在select子句前面的列中有没有格式化数据的方法?我应该创建新的视图并修改该视图中的列,或者使用复杂的正则表达式只获取数字(使用like comparator)?
p、 我使用hibernate管理雅加达ee项目中的数据库。
p、 第2节。我无法修改存储的数据。

pdsfdshx

pdsfdshx1#

一种方法是使用 replace() 比较前:

WHERE REPLACE(d.value, '-', '') = '1234'

相关问题