Función Split en Sql Server 2008 R2
Espero les sea útil esta función.
USE [Quality] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[Split] ( @string NVARCHAR(MAX), @delimiter CHAR(1) ) RETURNS @output TABLE(splitdata NVARCHAR(MAX) ) BEGIN DECLARE @start INT, @end INT SELECT @start = 1, @end = CHARINDEX(@delimiter, @string) WHILE @start < LEN(@string) + 1 BEGIN IF @end = 0 SET @end = LEN(@string) + 1 INSERT INTO @output (splitdata) VALUES(SUBSTRING(@string, @start, @end - @start)) SET @start = @end + 1 SET @end = CHARINDEX(@delimiter, @string, @start) END RETURN END
Modo de uso
En general la utilizo para en where in en caso de que me envien los datos separados por algún caracter delimitados ejemplo:
'AA-BB-CC-DD-EE'
SELECT * FROM tabla WHERE codigo in (SELECT splitdata FROM dbo.Split('AA-BB-CC-DD-EE', '-'));
Saludos
Muchas gracias, me has salvado la vida.
Excelente ayuda con la función. Gracias!
Gracias, ha sido de mucha utilidad.
Excelente!
Gracias Eres los Máximo!!!