sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2005:dividir la cadena en una matriz y obtener una matriz (x)?

Estoy asumiendo aquí que siempre hay exactamente 4 partes.

Si es así, podrías reemplazar / con . y use el ParseName función. El único problema de su ejemplo es que cuenta desde el final, por lo que debe tener cuidado con la parte que desea:

DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');

SELECT Parsename(@test, 4),--returns Peter
       Parsename(@test, 3),--returns Parker
       Parsename(@test, 2),--returns Spiderman
       Parsename(@test, 1) --returns Marvel

Si hay un número variable de partes, deberá encontrar una función de división de cadenas para que lo haga por usted, no hay una buena integrada. Se pueden encontrar muchas opciones buscando SO:https://stackoverflow.com/search?q=[sql+server]+string+split

Palabra de advertencia:si intenta usar un número con PARSENAME distinto de 1-4, el resultado siempre será NULL.