如何删除SQL Server 2012中的列中的双引号

时间:2017-01-30 07:26:26

标签: sql-server sql-server-2008 sql-server-2012

我需要删除列值中的双引号。例如,我在表格中有一列,其值如下

  1. “测试名称(”公司“)”
  2. “Testing”,Trust“(”Inc“)”
  3. 我需要删除“Inc”附近的双引号& “信任”和列值应类似于以下

    1. “Testing Name(Inc)”
    2. “Testing,Trust(Inc)”
    3. 我尝试使用REPLACE()函数。但它取代了值中的所有双引号。但我想在值的开头和结尾保留引号。请帮助

3 个答案:

答案 0 :(得分:4)

使用“替换”从字符串中删除双引号。然后是Prefix,后缀带双引号。

 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)" |
+----------------------------+------------------------+

答案 1 :(得分:1)

如果值的开始和结束将始终包含双引号,请尝试以下脚本。

SELECT  '"'+REPLACE( [column],'"','')+'"'
FROM    [table]

答案 2 :(得分:0)

以下代码检查是否有'"''在字符串的开头和结尾,然后替换'"'和连接'''开始和结束字符串。如果字符串没有'"'在字符串的开头和结尾处,它只是替换了'"'在字符串的所有位置,并不会将其连接到开始和结束。

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;