Ir para conteúdo
Fórum Script Brasil
  • 0

SELECT COM LETRAS E NUMEROS


MICHELI_MARTINS

Pergunta

pessoal boa noite.

tenho uma base de dados com o nome de produto assim BUCHA 352.322.0050 H1001.

Gostaria de saber se tem possibilidade de fazer um select nesse campo em que ele so me retorne o numero do produto (sem o nome), pois foi cadastrado assim pelo usuario.

A intençao é pegar o codigo do produto e fazer um script para transporta-lo para outro campo.

O problema é que são muitos produtos pra fazer manualmente.

Agradeço se alguém tiver uma ideia.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

você vai ter q usar funcoes de string pra separar.

tipo, substring(), charindex(), etc.

tem q ver como você sabe ate onde vai o nome. o nome vem sempre primero?? tem tamanho fixo?? onde ele acaba?? ele vai somente ate o primero espaco??

sabendo disso, você usa as funcoes q eu falei pra separar a string.

Link para o comentário
Compartilhar em outros sites

  • 0
você vai ter q usar funcoes de string pra separar.

tipo, substring(), charindex(), etc.

tem q ver como você sabe ate onde vai o nome. o nome vem sempre primero?? tem tamanho fixo?? onde ele acaba?? ele vai somente ate o primero espaco??

sabendo disso, você usa as funcoes q eu falei pra separar a string.

sim o nome vem primeiro depois vem o codigo mas o nome não possui tamanho fixo de forma que o produto varia de tamanho. referente ao espaço entre o nome e o codigo, tem uns produtos que tem e outros q não....teria que ser um select q identificasse o primeiro numero na sequencia do nome do produto...

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, como disse para um dos participantes do fórum, ainda há pouco (em uma outra situação), sou novata no uso do SQl Server (estou ensinando meus alunos este SGBD pela primeira vez, usando o Express Edition). No entanto, usando Stored Procedure (utilizando cursor, pois a consulta poderia retornar vários registros e tem-se que analisar cada um deles) consegui resolver o problema. Não sei se há uma solução mais prática através de uma única query, mas vai aí minha contribuição....

Espero ter ajudado....Dê retorno por favor....

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

CREATE procedure [dbo].[semNome] as

declare @cont int, @tudo varchar(300),@codigo varchar(100)

declare Registros Cursor

for (select nome from produtos)

OPEN Registros

FETCH NEXT FROM Registros into @tudo

While @@fetch_status=0

begin

select @cont=1

select @codigo=''

while (@cont <=len(@tudo)) and (substring(@tudo,@cont,1)not in ('1','2','3','4','5','6','7','8','9','0'))

select @cont= @cont+1

if (@cont<>len(@tudo))

select @codigo= substring(@tudo,@cont,len(@tudo)-@cont+1)

print @codigo

FETCH NEXT FROM Registros into @tudo

end

CLOSE Registros

DEALLOCATE Registros

Editado por Ilma
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...