Saltar al contenido

¿Cómo reemplazar el primer y último carácter de la columna en el servidor SQL?

Solución:

Puedes usar SUBSTRING para eso:

SELECT
    SUBSTRING(col, 2, LEN(col)-2)
FROM ...

Obviamente, un enfoque aún mejor sería no poner comas al principio y al final allí en primer lugar, si esta es una opción.

Quiero eliminar la última y la primera coma solo si existe, de lo contrario, no.

La expresión se vuelve un poco más compleja, pero la idea sigue siendo la misma:

SELECT SUBSTRING(
    col
,  CASE LEFT(@col,1) WHEN ',' THEN 2 ELSE 1 END
,  LEN(@col) -- Start with the full length
             -- Subtract 1 for comma on the left
      - CASE LEFT(@col,1) WHEN ',' THEN 1 ELSE 0 END 
             -- Subtract 1 for comma on the right
      - CASE RIGHT(@col,1) WHEN ',' THEN 1 ELSE 0 END
)
FROM ...

Alternativamente al método de dasblinkenlight, puede usar reemplazar:

DECLARE @words VARCHAR(50) = ',Recovery, Pump Exchange,'
SELECT REPLACE(','+ @words + ',',',,','')

El uso de LEN podría ser contraproducente porque LEN ignora los espacios finales. Estos podrían agregarse debido a que ANSI_PADDING está predeterminado en ON. Entonces, necesitarías RTRIM.

Para completar, también agregué LTRIM …

REVERSE(SUBSTRING(REVERSE(RTRIM(LTRIM(SUBSTRING(MyCol, 2, 8000)))), 2, 8000))
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *