Sql server 如何在SQL server 2012中删除列中的双引号
我需要删除列值中的双引号。例如,我在表中有一列,其值如下所示Sql server 如何在SQL server 2012中删除列中的双引号,sql-server,sql-server-2008,sql-server-2012,Sql Server,Sql Server 2008,Sql Server 2012,我需要删除列值中的双引号。例如,我在表中有一列,其值如下所示 “测试名称(“公司”)” “测试,信托公司” 我需要删除围绕“Inc”和“Trust”的双引号,列值应如下所示 “测试名称(公司)” 信托(有限公司)测试 我尝试使用REPLACE()函数。但是它替换了一个值中的所有双引号。但我希望保留值开头和结尾的引号。请帮助使用Replace从字符串中删除双引号。然后是前缀,后缀加双引号 DECLARE @VAR VARCHAR(50)='"Testing Name ("Inc")"' CR
我尝试使用REPLACE()函数。但是它替换了一个值中的所有双引号。但我希望保留值开头和结尾的引号。请帮助使用Replace从字符串中删除双引号。然后是前缀,后缀加双引号
DECLARE @VAR VARCHAR(50)='"Testing Name ("Inc")"'
CREATE TABLE #TAB (COLUMN_VALUE VARCHAR(50))
INSERT INTO #TAB
SELECT '"Testing Name ("Inc")"'
UNION ALL
SELECT '"Testing, "Trust" ("Inc")"'
现在点击下面的SELECT语句
SELECT COLUMN_VALUE, '"'+REPLACE(COLUMN_VALUE,'"','') +'"' as NEW_COLUMN_VALUE FROM #TAB
结果将是
+----------------------------+------------------------+
| COLUMN_VALUE | NEW_COLUMN_VALUE |
+----------------------------+------------------------+
| "Testing Name ("Inc")" | "Testing Name (Inc)" |
| "Testing, "Trust" ("Inc")" | "Testing, Trust (Inc)" |
+----------------------------+------------------------+
如果值的开始和结束始终包含双引号,请尝试下面的脚本
SELECT '"'+REPLACE( [column],'"','')+'"'
FROM [table]
下面的代码检查字符串的开头和结尾是否有''',然后替换'''并连接''',以开始和结束字符串。如果字符串的开头和结尾没有''',则只替换字符串所有位置的'',而不连接到开始和结束
CREATE TABLE #TAB (COLUMN_VALUE VARCHAR(50))
INSERT INTO #TAB
SELECT '"Testing Name ("Inc")"'
UNION ALL
SELECT '"Testing, "Trust" ("Inc")"'
union all
select 'Testing Name ("Inc")'
union all
SELECT 'Testing, "Trust" ("Inc")'
union all
SELECT 'Testing, "Trust" ("Inc")"'
select * from #TAB
select
case when charindex('"',column_value,1)=1 and charindex('"',column_value,len(column_value))=len(column_value)
then '"'+REPLACE(COLUMN_VALUE,'"','') +'"'
else REPLACE(COLUMN_VALUE,'"','')
end as ClenedString
from #TAB;
值的开始和结束将始终包含双引号?是的。大多数情况下,它将在值的开始和结束处包含双引号