gpt4 book ai didi

sql - 替换函数 - 在 SQL SERVER 2008 中处理单引号和正斜杠

转载 作者:搜寻专家 更新时间:2023-10-30 23:29:27 24 4
gpt4 key购买 nike

我想替换我的数据库中存在单引号和斜杠的一些数据。

下面这行正是它在数据库中的显示方式,我只想从记录中删除'F/D',

('P/P','F/D','DFC','DTP')

一直在使用的变体

UPDATE tablename SET columnname = REPLACE(columnname, '''F/D,''', '')
WHERE RECORDID = XXXXX

也一直在使用

UPDATE tablename SET columnname = REPLACE(columnname, 'F/D,', '')
WHERE RECORDID = XXXXX

似乎这应该是一个简单的修复,但我还没有任何运气 - 所有建议都值得赞赏。

最佳答案

你的不起作用的原因是你没有包括引号。您正在寻找 F/D,'F/D,'你的数据是'F/D', .

如果它只是 'F/D'从要删除的所有值中,还需要删除逗号和引号。此方法删除 'F/D'然后是任何双逗号(如果 'F/D' 在字符串中间)。

declare @var varchar(64) = '(''P/P'',''F/D'',''DFC'',''DTP'')'

select replace(replace(@var,'''F/D''',''),',,',',')

--update tablename
--set columnname = replace(replace(columnname,'''F/D''',''),',,',',')
--where RECORDID = 1324

如果要替换字符串中的第二个元素,这里有一个方法:

select 
@var
--find the location of the first comma
,charindex(',',@var,0)
--find the location of the second comma
,charindex(',',@var,charindex(',',@var) + 1)
--Put it all together, using STUFF to replace the values between this range with nothing
,stuff(@var,charindex(',',@var,0),charindex(',',@var,charindex(',',@var) + 1) - charindex(',',@var,0),'')

关于sql - 替换函数 - 在 SQL SERVER 2008 中处理单引号和正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51286865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com