sirve - Cómo eliminar las comillas dobles dentro de una columna en SQL Server 2012
sql server quoted_identifier (3)
Necesito eliminar las comillas dobles dentro de un valor de columna. Por ejemplo, tengo una columna en la tabla que tiene los valores de abajo
- "Testing Name (" Inc ")"
- "Prueba", "Confianza" ("Inc") "
Necesito eliminar las comillas dobles que rodean "Inc" y "Confianza" y los valores de la columna deben parecerse a los siguientes:
- "Testing Name (Inc)"
- "Pruebas, Confianza (Inc)"
Intenté con la función REPLACE (). Pero reemplaza todas las comillas dobles en un valor. Pero quiero retener las comillas al principio y al final del valor. Amablemente ayuda
SI el inicio y el final del valor siempre contienen comillas dobles, entonces pruebe con la secuencia de comandos siguiente.
SELECT ''"''+REPLACE( [column],''"'','''')+''"''
FROM [table]
Use Reemplazar para eliminar las comillas dobles de la cadena. Y luego Prefijo, Sufijo con comillas dobles.
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")"''
Ahora presione debajo de la declaración SELECT
SELECT COLUMN_VALUE, ''"''+REPLACE(COLUMN_VALUE,''"'','''') +''"'' as NEW_COLUMN_VALUE FROM #TAB
Y el resultado será
+----------------------------+------------------------+
| COLUMN_VALUE | NEW_COLUMN_VALUE |
+----------------------------+------------------------+
| "Testing Name ("Inc")" | "Testing Name (Inc)" |
| "Testing, "Trust" ("Inc")" | "Testing, Trust (Inc)" |
+----------------------------+------------------------+
El código siguiente comprueba si hay un '''' '''' al principio y al final de la cadena y luego reemplaza '''' '''' y concatena '''' '''' para iniciar y finalizar la cadena. Si la cadena no tiene '''' '''' '''' al principio y al final de la cadena, simplemente reemplaza '''' '''' en todas las posiciones de la cadena y no la concatena para comenzar y terminar.
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;