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)