Quitar comillas de un número SQL SERVER

publicado por: Anonymous

Hola amigos tengo la siguiente duda, quisiera saber cómo puedo quitarle las comillas a un número que tengo dentro de un string y devolver todo el mismo string pero sin las comillas en los números en SQL SERVER

‘ ‘juan’, ‘1’ , ‘domicilio x’ , ’32’ , ‘Asia’ ‘

suponiendo que ese es mi string yo necesito que al final tener algo como esto

‘ ‘juan’, 1 , ‘domicilio x’ , 32 , ‘Asia’ ‘

donde ya he removido las comillas de lo números. No sé si pueda usar un Cast o Parse porque están dentro de el mismo string. Mil gracias a todos

solución

Para una columna con texto se me ocurre tomar la fila y generar un split por el carácter ‘,’, después por cada fila generada verificar si es un número con la función ISNUMERIC, en caso que sea número elimino las comillas con un replace. Una vez terminado vuelvo armar un solo string separado por comas.

Documentación STRING_SPLIT https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017

Esta operación podría ir dentro de una función para ejecutarla masivamente.

SELECT 
    SUBSTRING(
    (
        SELECT ',' +
            CASE 
                WHEN ISNUMERIC(REPLACE(VALUE, '''', '')) = 1 THEN REPLACE(VALUE, '''', '') 
                ELSE VALUE 
            END
        FROM STRING_SPLIT(' ''TEXT1'', ''1'', ''TEXT2'', ''3'' ', ',') -- aquí la fila con texto que deseo limpiar
        FOR XML PATH ('')
    ), 2, 1000) -- acá es para quitar la primera ','
Respondido por: Anonymous

Leave a Reply

Your email address will not be published.