Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafaelLinux

Contar numeros dos Celulares

Recommended Posts

Galera estou querendo converter um campo de telefones que está em nVarChar para Numeric, e selecionar apenas os celulares, só que não obtive muito sucesso... Alguém tem alguma sugestão de melhora deste código?

 

Select idtarf, ipPabx, Right(numero,8) as Celular,

Case When IsNumeric(numero)<> 0 THEN

--convert it to the table's original field type nvarchar(50)

CONVERT(nvarchar(50), CONVERT(NUMERIC(38,0), (replace(Numero,'D',''))))

ELSE

numero

End as ConvertedValue

From tb_registros

--WHERE celular between 88000000 and 99999999

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem bastante celular que começa com 6 e 7.

 

Você pode usar a função SUBSTRING para pegar uma parte do texto só...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade Tash com o SUBSTRING não dá para fazer pq os tamanhos dos telefones variam muito de região para região... por isso que fiz Right(numero,8) as Celular, porém não sei como comparar este nova "coluna"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei como é sua estrutura de banco, nem quais informações estão na coluna.

 

http://msdn.microsoft.com/en-us/library/ms187748.aspx

 

Você pode começar checando pelo tamanho, tenta algo assim:

 

SELECT
    CASE
        WHEN LEN(LTRIM(RTRIM(Numero)) = 8 AND SUBSTRING(LTRIM(RTRIM(Numero)), 1, 1) BETWEEN 6 AND 9
            THEN 'Celular!'
        ELSE 'Outro número'
    END Tipo,
    LTRIM(RTRIM(Numero) Numero
FROM
    tb_registros

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.