我正在使用Microsoft SQL Server和已存储的数据。
在我的一张表中,我可以找到以下数据:

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


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

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


有什么方法可以在SELECT子句之前格式化列中的数据?
我应该创建新视图并在该视图中修改列,还是应该使用复杂的REGEX来仅获取数字(使用LIKE比较器)?


附言我使用Hibernate在Jakarta EE项目中管理数据库。
P.S.2。我无法修改存储的数据。

最佳答案

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

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

07-25 22:45
查看更多