我在标题中提到了一个问题。我有一个包含一些部分的数据库,其代码如下:
ID | Part_name | Part_code
---+-----------+-----------
1 | ... | 123.1-233
2 | ... | 12.32,211
3 | ... | 123-12,22
我想执行SELECT
查询,该查询将返回没有点,逗号和连字符的结果。我认为可以使用REPLACE()
完成,但我无法使其正常工作。
我试过了:
select replace(Parts.Part_code, '.', '')
from Parts;
并且它可以正常工作,但我无法使用任何正则表达式进行多个符号,似乎SQL Server忽略了方括号,因为它无法使用:
select replace(Parts.Part_code, '[\.]', '')
from Parts;
任何帮助?
答案 0 :(得分:8)
删除多个替换多个字符我害怕
SELECT REPLACE(REPLACE(REPLACE(Part_code, ',', ''), '.', ''), '-', '')
FROM Parts;
答案 1 :(得分:0)
需要多次替换。在没有遇到SQL Server中的嵌套限制的情况下进行替换的一种方法是使用outer apply
:
select p3.Part_code
from parts p outer apply
(select replace(p.Part_code, ',', '') as Part_code) p1 outer apply
(select replace(p1.Part_code, '.', '') as Part_code) p2 outer apply
(select replace(p2.Part_code, '-', '') as Part_code) p3 ;