Usuário com melhor resposta
Separar números de letras

Pergunta
-
Respostas
-
Acredito que um bom meio seja a utilização de funções, como a seguir. Porém, se você precisar disso uma vez só, poderia executar um Update na tabela com estas funções.
Segue exemplo completo:
Create Function fnc_RetornaNumeros (@Campo VarChar(100)) returns VarChar(100) as Begin Declare @Texto VarChar(100) = '', @Caracter Char(01) While Len(@Campo) > 0 Begin Set @Caracter = Left(@Campo, 1) if @Caracter in ('0','1','2','3','4','5','6','7','8','9','10') Set @Texto = @Texto + @Caracter Set @Campo = Right(@Campo, Len(@Campo) - 1) End Return (@Texto) End Create Function fnc_RetornaLetras (@Campo VarChar(100)) returns VarChar(100) as Begin Declare @Texto VarChar(100) = '', @Caracter Char(01) While Len(@Campo) > 0 Begin Set @Caracter = Left(@Campo, 1) if @Caracter not in ('0','1','2','3','4','5','6','7','8','9','10') Set @Texto = @Texto + @Caracter Set @Campo = Right(@Campo, Len(@Campo) - 1) End Return (@Texto) End -- Testes Create Table #Teste (Codigo VarChar(100)) Insert Into #Teste Values ('4541278SJX'), ('214WX547') Select Codigo, Codigo_Numeros = dbo.fnc_RetornaNumeros(Codigo), Codigo_Letras = dbo.fnc_RetornaLetras(Codigo) From #Teste
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Vitor Mendes segunda-feira, 5 de novembro de 2012 17:10
- Marcado como Resposta Bruno.Costa segunda-feira, 5 de novembro de 2012 17:46
Todas as Respostas
-
Bruno,
Acho que não ficou muito claro, você pretender utilizar estes valores no cadastro de algo, mais oque seria separar os valores ?Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/ -
Quer separar letras e números?
Existem outros caracteres, como acentos?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Editado Roberson Ferreira _Moderator segunda-feira, 5 de novembro de 2012 16:21
-
-
Mas existem outros caracteres além de números e letras?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
E outra coisa: no exemplo que você deu (4541278SJX), você quer fazer o que com as letras e fazer o que com os números?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
-
Acredito que um bom meio seja a utilização de funções, como a seguir. Porém, se você precisar disso uma vez só, poderia executar um Update na tabela com estas funções.
Segue exemplo completo:
Create Function fnc_RetornaNumeros (@Campo VarChar(100)) returns VarChar(100) as Begin Declare @Texto VarChar(100) = '', @Caracter Char(01) While Len(@Campo) > 0 Begin Set @Caracter = Left(@Campo, 1) if @Caracter in ('0','1','2','3','4','5','6','7','8','9','10') Set @Texto = @Texto + @Caracter Set @Campo = Right(@Campo, Len(@Campo) - 1) End Return (@Texto) End Create Function fnc_RetornaLetras (@Campo VarChar(100)) returns VarChar(100) as Begin Declare @Texto VarChar(100) = '', @Caracter Char(01) While Len(@Campo) > 0 Begin Set @Caracter = Left(@Campo, 1) if @Caracter not in ('0','1','2','3','4','5','6','7','8','9','10') Set @Texto = @Texto + @Caracter Set @Campo = Right(@Campo, Len(@Campo) - 1) End Return (@Texto) End -- Testes Create Table #Teste (Codigo VarChar(100)) Insert Into #Teste Values ('4541278SJX'), ('214WX547') Select Codigo, Codigo_Numeros = dbo.fnc_RetornaNumeros(Codigo), Codigo_Letras = dbo.fnc_RetornaLetras(Codigo) From #Teste
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Vitor Mendes segunda-feira, 5 de novembro de 2012 17:10
- Marcado como Resposta Bruno.Costa segunda-feira, 5 de novembro de 2012 17:46