Posted By

derebus on 09/15/10


Tagged


Versions (?)

Encuentra una palabra dentro de una cadena


 / Published in: SQL
 

URL: http://grupos.emagister.com/documento/fn_encuentra_palabra/6906-288714

Encuentra una palabra dentro de un cadena. Ejem. SELECT DBO.FNENCUENTRAPALABRA(\'AQUI HAY VARIAS PALABRAS\', 2)\r\nRespuesta=HAY

  1. IF OBJECT_ID('FN_ENCUENTRA_PALABRA') IS NOT NULL
  2. DROP FUNCTION DBO.FN_ENCUENTRA_PALABRA
  3. GO
  4.  
  5. CREATE FUNCTION DBO.FN_ENCUENTRA_PALABRA (@CADENA VARCHAR(4000), @NUMERO_PALABRA INT)
  6. RETURNS VARCHAR(500)
  7. AS
  8. BEGIN
  9.  
  10. DECLARE @DATA TABLE (NUMERO_PALABRA INT IDENTITY(1,1),
  11. PALABRA VARCHAR(500))
  12.  
  13. DECLARE @POS INT,
  14. @LAST_POS INT,
  15. @PALABRA VARCHAR(500)
  16.  
  17. SELECT @POS = 0,
  18. @LAST_POS = 1
  19.  
  20. WHILE @POS < LEN(@CADENA)
  21. BEGIN
  22. SELECT @POS = @POS + 1
  23. IF SUBSTRING(@CADENA,@POS,1) = ' ' OR @POS = LEN(@CADENA)
  24. BEGIN
  25. INSERT INTO @DATA (PALABRA) VALUES (SUBSTRING(@CADENA,@LAST_POS,@POS-@LAST_POS+1))
  26. SELECT @LAST_POS = @POS + 1
  27. END
  28. END
  29.  
  30. SELECT @PALABRA = PALABRA
  31. FROM @DATA
  32. WHERE NUMERO_PALABRA = @NUMERO_PALABRA
  33.  
  34. RETURN REPLACE(@PALABRA, ' ', '')
  35.  
  36. END
  37. GO
  38.  
  39.  
  40. SELECT DBO.FN_ENCUENTRA_PALABRA('AQUI HAY VARIAS PALABRAS', 2)

Report this snippet  

You need to login to post a comment.