Funcao para Campo Nome em branco
16/12/2009
0
iai galera...
Tenho uma funcao que me retorna o nome do cliente de acordo com qual parte da tabela esta. Por exemplo
Set @Nome = 'LUIS FERNANDO TREMONTI'
dbo.fn_AchaNome( @Nome , 1 ) --me retorna o primeiro nome ...
E assim sucessivamente...
O que esta ocorrendo é que quando informo 0 ( zero ) ele deve me retornar o sobrenome.
Mas... ele retorna em branco...
Um detalhe importante é que ele só retorna em branco quando eu dou um select na tabela utilizando a funcao... Caso declare uma variaval e execute a funcao, funciona normalmente...
Segue abaixo:
Alter function fn_AchaNome( @Nome VarChar( 40 ), @Tipo integer ) returns VarChar(40)
AS
begin
Declare @i integer
Declare @Pos integer
Declare @Aux VarChar( 40 )
Declare @Retorno VarChar(40)
Set @Pos = 1
Set @i = 0
Set @Aux = @Nome
if @tipo >= 1 begin
while @i < @tipo begin
Set @Pos = CharIndex( ' ' , @Aux )
Set @Retorno = LTrim(RTrim(SubString( @Aux , 1, @Pos )))
Set @Aux = SubString( @Aux, @Pos+1 , Len( @Aux ) )
Set @i = @i+1
end
end
else begin
Set @Aux = Reverse( @Aux )
Set @Pos = CharIndex( ' ' , @Aux )
Set @Retorno = LTrim(RTrim(SubString( @Aux , 1, @Pos )))
Set @Retorno = Reverse( @Retorno )
end
return @Retorno
end
Select NmCliente, dbo.fn_AchaNome( NmCliente, 0 ) as SobreNome From Cliente --Me retorna em branco
declare @Nome varChar(40)
Set @Nome = 'LUIS FERNANDO TREMONTI'
Select dbo.fn_AchaNome( @Nome , 0 )
me retorna Tremonti
O que pode ser?
Obrigado ... e Abracos!!!
Tenho uma funcao que me retorna o nome do cliente de acordo com qual parte da tabela esta. Por exemplo
Set @Nome = 'LUIS FERNANDO TREMONTI'
dbo.fn_AchaNome( @Nome , 1 ) --me retorna o primeiro nome ...
E assim sucessivamente...
O que esta ocorrendo é que quando informo 0 ( zero ) ele deve me retornar o sobrenome.
Mas... ele retorna em branco...
Um detalhe importante é que ele só retorna em branco quando eu dou um select na tabela utilizando a funcao... Caso declare uma variaval e execute a funcao, funciona normalmente...
Segue abaixo:
Alter function fn_AchaNome( @Nome VarChar( 40 ), @Tipo integer ) returns VarChar(40)
AS
begin
Declare @i integer
Declare @Pos integer
Declare @Aux VarChar( 40 )
Declare @Retorno VarChar(40)
Set @Pos = 1
Set @i = 0
Set @Aux = @Nome
if @tipo >= 1 begin
while @i < @tipo begin
Set @Pos = CharIndex( ' ' , @Aux )
Set @Retorno = LTrim(RTrim(SubString( @Aux , 1, @Pos )))
Set @Aux = SubString( @Aux, @Pos+1 , Len( @Aux ) )
Set @i = @i+1
end
end
else begin
Set @Aux = Reverse( @Aux )
Set @Pos = CharIndex( ' ' , @Aux )
Set @Retorno = LTrim(RTrim(SubString( @Aux , 1, @Pos )))
Set @Retorno = Reverse( @Retorno )
end
return @Retorno
end
Select NmCliente, dbo.fn_AchaNome( NmCliente, 0 ) as SobreNome From Cliente --Me retorna em branco
declare @Nome varChar(40)
Set @Nome = 'LUIS FERNANDO TREMONTI'
Select dbo.fn_AchaNome( @Nome , 0 )
me retorna Tremonti
O que pode ser?
Obrigado ... e Abracos!!!
Fernando /@ftremonti
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)