Return to Snippet

Revision: 31877
at September 15, 2010 03:56 by derebus


Initial Code
IF OBJECT_ID('FN_ENCUENTRA_PALABRA') IS NOT NULL
DROP FUNCTION DBO.FN_ENCUENTRA_PALABRA
GO

CREATE FUNCTION DBO.FN_ENCUENTRA_PALABRA (@CADENA VARCHAR(4000), @NUMERO_PALABRA INT)
RETURNS VARCHAR(500)
AS
BEGIN

DECLARE @DATA TABLE (NUMERO_PALABRA INT IDENTITY(1,1),
PALABRA VARCHAR(500))

DECLARE @POS INT,
@LAST_POS INT,
@PALABRA VARCHAR(500)

SELECT @POS = 0,
@LAST_POS = 1

WHILE @POS < LEN(@CADENA)
BEGIN
SELECT @POS = @POS + 1
IF SUBSTRING(@CADENA,@POS,1) = ' ' OR @POS = LEN(@CADENA)
BEGIN
INSERT INTO @DATA (PALABRA) VALUES (SUBSTRING(@CADENA,@LAST_POS,@POS-@LAST_POS+1))
SELECT @LAST_POS = @POS + 1
END
END

SELECT @PALABRA = PALABRA
FROM @DATA
WHERE NUMERO_PALABRA = @NUMERO_PALABRA

RETURN REPLACE(@PALABRA, ' ', '')

END
GO


SELECT DBO.FN_ENCUENTRA_PALABRA('AQUI HAY VARIAS PALABRAS', 2)

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

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

Initial Title
Encuentra una palabra dentro de una cadena

Initial Tags


Initial Language
SQL