Funcion Split

24/07/2006 - 21:22 por Rene Quintero | Informe spam
Hola..
Alguien sabe como hacer para separar una cadena delimitada por comas???
Algo asi como la funcino SPLIT en los lenguajese de programacion...

Rene Quintero
 

Leer las respuestas

#1 Alejandro Mesa
24/07/2006 - 20:49 | Informe spam
Rene,

Aqui encontraras varias formas de hacerlo. Personalmente prefiero la funcion
que hace uso de una tabla auxiliar de numeros. Busca la seccion "Using a
Table of Numbers".

Arrays and Lists in SQL Server
http://www.sommarskog.se/arrays-in-sql.html#tblnum

Ejemplo:

use northwind
go

select
identity(int, 1, 1) as number
into
dbo.numbers
from
sysobjects as a
cross join
sysobjects as b
go

create unique clustered index numbers_number_u_c_ix
on dbo.numbers(number asc) with fillfactor = 100
go

CREATE FUNCTION dbo.inline_split_me (
@param varchar(7998)
) RETURNS TABLE
AS
RETURN(
SELECT substring(',' + @param + ',', number + 1, charindex(',', ',' + @param
+ ',', number + 1) - number - 1) AS Value
FROM dbo.numbers
WHERE number <= len(',' + @param + ',') - 1 AND substring(',' + @param +
',', number, 1) = ','
)
go

declare @s varchar(7998)

set @s = 'ALFKI,ANATR,ANTON,AROUT,BERGS,BLAUS,BLONP,BOLID,BONAP,BOTTM'

select value
from dbo.inline_split_me(@s)
go

drop function dbo.inline_split_me
go

drop table dbo.numbers
go

No tienes por que eliminar la tabla auxiliar, pues esta es muy util para
ciertos calculos y no consume muchos recursos en la db.

Why should I consider using an auxiliary numbers table?
http://www.aspfaq.com/show.asp?id%16


AMB

"Rene Quintero" wrote:

Hola..
Alguien sabe como hacer para separar una cadena delimitada por comas???
Algo asi como la funcino SPLIT en los lenguajese de programacion...

Rene Quintero



Preguntas similares