Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/10/2014, 10:51
juanes033
 
Fecha de Ingreso: octubre-2014
Ubicación: Medellín
Mensajes: 5
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Separar cadena de caracteres con Store procedure

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. /****** Object:  UserDefinedFunction [dbo].[SplitApplication]    Script Date: 10/19/2010 15:12:35 ******/
  2. SET ANSI_NULLS ON
  3. GO
  4.  
  5. SET QUOTED_IDENTIFIER ON
  6. GO
  7.  
  8. ALTER FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(MAX))
  9.  
  10. RETURNS @RtnValue TABLE
  11. (
  12. Id INT IDENTITY(1,1),
  13. DATA nvarchar(MAX)
  14. )
  15. AS
  16. BEGIN
  17. DECLARE @Cnt INT, @SplitOn nvarchar(20)
  18. --SET @SplitOn = '##Receive;'
  19. SET @SplitOn = ';'
  20. SET @Cnt = 1
  21.  
  22. While (Charindex(@SplitOn,@applicationid)>0)
  23. BEGIN
  24. INSERT INTO @RtnValue (DATA)
  25. SELECT
  26. DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-(len(@SplitOn)))))
  27.  
  28. SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+(len(@SplitOn)),len(@applicationid))
  29. SET @Cnt = @Cnt + 1
  30. END
  31.  
  32. INSERT INTO @RtnValue (DATA)
  33. SELECT DATA = ltrim(rtrim(@applicationid))
  34.  
  35. RETURN
  36. END
  37.  
  38. GO
  39.  
  40.  
  41. how TO USE :
  42.  
  43.  
  44. SELECT
  45. CASE WHEN charindex('##',DATA)>=1 THEN SUBSTRING([DATA],1,charindex('##',DATA)-1) ELSE DATA END AS dato FROM
  46. SplitApplication('[email protected]##Receive;vlizarralde@argos .com.co##Receive;[email protected]##Receive;ja [email protected]##Receive;[email protected]##Receive;[email protected]##Receive Deliver;[email protected]##Receive, Deliver;[email protected]')

Resultado final:

[email][email protected][/email]
vlizarralde@argos .com.co
[email][email protected][/email]
ja [email][email protected][/email]
[email][email protected][/email]
[email][email protected][/email]
[email][email protected][/email]
[email][email protected][/email]


saludos!
Muchisimas gracias Libras, ya me voy a acondicionar la funcion para que funcione de la tabla de donde sale la informacion, si tengo algun problema te estare molestando, ya que como te dije anteriormente soy nuevo en este mundo, pero con toda la disposicion del mundo para aprender