domingo, 12 de setembro de 2010

Separar nome e sobrenomes

Criei a seguinte função do tipo table value, para separar o nome e sobrenome que pode ser passado como parâmetro para a função.

CREATE FUNCTION dbo.Fncseparanomes(@nome VARCHAR(100))
RETURNS @TABLE TABLE(
  nome VARCHAR(100))
AS
  BEGIN
      DECLARE @TEMP VARCHAR(100)
      DECLARE @AUX VARCHAR(100)

      SELECT @TEMP = @NOME,
             @AUX = ''

      WHILE Len(@TEMP) > 0
        BEGIN
            IF Charindex(' ', @TEMP) > 0
              SELECT @AUX = LEFT(@TEMP, Charindex(' ', @TEMP))
            ELSE
              SELECT @AUX = @TEMP

            INSERT INTO @TABLE
            VALUES      (@AUX)

            SELECT @TEMP = REPLACE(@TEMP, @AUX, '')
        END

      RETURN
  END

GO  

Executando com este parâmetro:


SELECT * FROM   dbo.Fncseparanomes('RODRIGO RIBEIRO GONÇALVES JUNIOR') 








Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!