none
Função que devolva o numero de caracteres

    Question

  • Boa tarde minha duvida é a seguinte:

    tenho' texto' @ ' 'texto' # '   ',gostaria de saber qual a função que conte os caracteres até encontrar @ e depois volte a contar até encontrar o #.

    Obrigado.

    Wednesday, March 14, 2012 6:09 PM

Answers

  • Olá High_lander,

    Estes caracteres no início e final são fixos? Se forem você poderá resolver com a função REPLACE. Esta função ira substituir um carácter específico por outro pré estabelecido. Segue um exemplo:

    DECLARE @TABLE AS TABLE (NOME VARCHAR(10))
    
    INSERT INTO @TABLE (NOME) VALUES
        ('@tania#'),
    	('@luis#'),                                          
    	('@sandra#'),                                          
    	('@hugo#') 
    
    --SOLUÇÃO 1: Substituir os caracteres
    SELECT 
    	REPLACE(
    		REPLACE(
    			NOME,'@','') 
    				,'#','')
    FROM @TABLE
    
    /*SOLUÇÃO 2: "Recortar" os caracteres, nao exibindo o ultio e o primeiro
    Esta solução resolveria melhor seu caso, pois caso hajam os caracteres especiais
    que você explicitou no com o comando REPLACE eles também serão substituidos.*/
    
    SELECT SUBSTRING(NOME,2,LEN(NOME)-2) FROM @TABLE

    Para fazer a contagem dos caracteres, você poderá usar o seguinte comando:

    SELECT LEN (SUBSTRING(NOME,2,LEN(NOME)-2) ) FROM @TABLE

    Abraços.

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com é de SP e Vai ao SQL Saturday #127?


    Thursday, March 15, 2012 12:25 PM

All replies

  • Boa tarde,

    Acredito que possa ser utilizada a função CHARINDEX:

    http://msdn.microsoft.com/en-us/library/ms186323(v=sql.105).aspx

    Espero que seja útil.


    Assinatura: Imobiliarias em Suzano

    Wednesday, March 14, 2012 7:06 PM
  • Bom dia,

    Eu tenho a tabela seguinte:

    @tania#                                          
    @luis#                                           
    @sandra#                                         
    @hugo#                                           
    @rui#                                            
    @vermelho#                                       
    @verde#                                          
    @azul#                                           
    @sporting#                                       
    @benfica#                                        
    @porto#                                          
    @Lisboa#                                         
    @Setubal#       , o que pretendo é que ele me devolva o que esta dentro dos caracteres e que contes quantos caracteres são?

    Obrigada.                                 

    Thursday, March 15, 2012 10:56 AM
  • Olá High_lander,

    Estes caracteres no início e final são fixos? Se forem você poderá resolver com a função REPLACE. Esta função ira substituir um carácter específico por outro pré estabelecido. Segue um exemplo:

    DECLARE @TABLE AS TABLE (NOME VARCHAR(10))
    
    INSERT INTO @TABLE (NOME) VALUES
        ('@tania#'),
    	('@luis#'),                                          
    	('@sandra#'),                                          
    	('@hugo#') 
    
    --SOLUÇÃO 1: Substituir os caracteres
    SELECT 
    	REPLACE(
    		REPLACE(
    			NOME,'@','') 
    				,'#','')
    FROM @TABLE
    
    /*SOLUÇÃO 2: "Recortar" os caracteres, nao exibindo o ultio e o primeiro
    Esta solução resolveria melhor seu caso, pois caso hajam os caracteres especiais
    que você explicitou no com o comando REPLACE eles também serão substituidos.*/
    
    SELECT SUBSTRING(NOME,2,LEN(NOME)-2) FROM @TABLE

    Para fazer a contagem dos caracteres, você poderá usar o seguinte comando:

    SELECT LEN (SUBSTRING(NOME,2,LEN(NOME)-2) ) FROM @TABLE

    Abraços.

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com é de SP e Vai ao SQL Saturday #127?


    Thursday, March 15, 2012 12:25 PM