【发布时间】:2018-09-13 21:06:41
【问题描述】:
我的表中有这些数据
PartNumber | IsValid
BC.QT.000002' 0
'CP.AC.'000010' 0
'CP.AL.000013 0
'CP.A'L.000016' 0
'CP.AL.000024' 0
我想要做的是从 PartNumber 值中删除 ',但如果该引号 ' 在值的中间,例如 'CP.AC.'000010' 我只想删除后缀和前缀 '
想要的结果应该是这样的
PartNumber | IsValid
BC.QT.000002 0
CP.AC.'000010 0
CP.AL.000013 0
CP.A'L.000016 0
CP.AL.000024 0
这是我尝试过的 SQL
CREATE TABLE #Temp(
PartNumber VARCHAR(20)
,Test VARCHAR(30)
);
INSERT INTO #Temp(PartNumber,Test) VALUES ('''test''',NULL);
INSERT INTO #Temp(PartNumber,Test) VALUES ('''te''st2''',NULL);
INSERT INTO #Temp(PartNumber,Test) VALUES ('''test3''',NULL);
INSERT INTO #Temp(PartNumber,Test) VALUES ('''tes''t5''',NULL);
Update #Temp
set partNumber = REPLACE(PartNumber,'''','')
Where len(partNumber ) - len(replace(partNumber , '''', '')) = 2
这不起作用,因为它完全忽略了值中有 3 ' 的值,或者如果有 2 ' 但其中一个在中间。
如果存在前缀/后缀 ',我需要一种方法来删除它们。
【问题讨论】:
标签: sql sql-server tsql sql-server-2008