Cómo dividir una cadena en SQL Server
Ecco una semplice funzione in Sql Server per splittare una stringa troppo lunga con pochissime righe di codice. Spero possa esserti di aiuto.
CREAR FUNCIÓN dbo.fnSplit (
@sInputList VARCHAR (8000) – Lista de elementos delimitados
, @sDelimiter VARCHAR (8000) = ‘,’ – delimitador que separa elementos
) DEVUELVE @List TABLE (elemento VARCHAR (8000))
COMENZAR
DECLARAR @sItem VARCHAR (8000)
MIENTRAS CHARINDEX (@ sDelimiter, @ sInputList, 0) <> 0
COMENZAR
SELECCIONE
@ sItem = RTRIM (LTRIM (SUBSTRING (@ sInputList, 1, CHARINDEX (@ sDelimiter, @ sInputList, 0) -1))),
@ sInputList = RTRIM (LTRIM (SUBSTRING (@ sInputList, CHARINDEX (@ sDelimiter, @ sInputList, 0)) + LEN (@sDelimiter), LEN (@sInputList))))
SI LEN (@sItem)> 0
INSERT INTO @List SELECT @sItem
FIN
SI LEN (@sInputList)> 0
INSERT INTO @List SELECT @sInputList – Coloque el último elemento en
REGRESO
FIN
VAMOS
-Prueba
seleccione * de fnSplit (‘1,22,333,444 ,, 5555,666’, ‘,’)
seleccione * de fnSplit (‘1 ## 22 # 333 ## 444 ′,’ ## ‘) – tenga en cuenta que el segundo elemento tiene # incrustado
seleccionar * de fnSplit (‘1 22 333 444 5555 666’, »)