我正在使用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'