Ir para conteúdo

POWERED BY:

Arquivado

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

SILVASS

Selecionando linha especifica

Recommended Posts

Olá,

Estou comecando a mexer com banco de dados SQL e estou com algumas dificuldades.

Tenho um arquivo de texto, que os dados não estão separados.

 

Ao inserir na tabela, ele vem assim

 

Fabricante do sistema: Microsoft Corporation

Modelo do sistema: Virtual Machine

Memória Virtual: Tamanho Máximo: 8.221 MB

 

.. ele tem cerca de 40 linhas ...

 

Preciso pegar dados de uma linha especifica, como por exemplo: Linha 2,10,12,25,26 ....

e tbm preciso que retorne tudo que esta antes do " : ".

 

Me ajudem, please.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Importa todos para uma tabela (fisica ou temporaria) e tire os dados dela.

Muito mais facil do que filtrar antes da importacao.

 

Se voce já tem eles em uma tabela, pode pegar o que tem antes dos dois pontos com substring e charindex.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Jr

 

Eu cheguei a fazer isso, mas esta me retornando NULL

 

Olha o camando que usei

 

SELECT
CASE left(coluna, 4)
WHEN 'host' then ltrim ((SUBSTRING(coluna, CHARINDEX(':', coluna) - 1, LEN (coluna))))
end as valor
from tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um exemplo:

 

declare @tabela table (coluna varchar(2000)) insert into @tabela values ('Fabricante do sistema:                Microsoft Corporation')insert into @tabela values ('Modelo do sistema:                      Virtual Machine')insert into @tabela values ('Memória Virtual: Tamanho Máximo:           8.221 MB') SELECT *, LTRIM(RTRIM(substring(coluna, (charindex(':', coluna)+1) , len(coluna))))FROM @tabela 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta retornando 2 colunas com a mesma informação, veja

 

coluna1 coluna2

Fabricante do sistema: Microsoft Corporation Microsoft Corporation
Modelo do sistema: Virtual Machine Virtual Machine
Memória Virtual: Tamanho Máximo: 8.221 MB Tamanho Máximo: 8.221 MB

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Esta retornando 2 colunas com a mesma informação, veja

 

coluna1 coluna2

Fabricante do sistema: Microsoft Corporation Microsoft Corporation
Modelo do sistema: Virtual Machine Virtual Machine
Memória Virtual: Tamanho Máximo: 8.221 MB Tamanho Máximo: 8.221 MB

Observe que na coluna2 tem informações somente do que tem depois dos dois pontos. Não era isso que precisava??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade preciso de todas as informações, só separadas por coluna, tanto o que esta antes quanto o que esta depois do dois pontos

exemplo

 

 

COLUNA1 COLUNA2

Fabricante do sistema: Microsoft Corporation

 

Desculpa, se estou sendo chata, mas como disse to comecando agora, então estou super perdida ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah ta.. entendi errado entao.

Vou te montar um exemplo. Guenta ai



declare @tabela table (coluna varchar(2000)) insert into @tabela values ('Fabricante do sistema:                Microsoft Corporation')insert into @tabela values ('Modelo do sistema:                      Virtual Machine')insert into @tabela values ('Memória Virtual: Tamanho Máximo:           8.221 MB') SELECT CASE WHEN CHARINDEX(':',coluna) > 0 THEN LEFT(coluna, CHARINDEX(':',coluna)-1) ELSE coluna END As PrimeiroNome,CASE WHEN CHARINDEX(':',REVERSE(coluna)) > 0THEN RIGHT(coluna, CHARINDEX(':',REVERSE(coluna))-1)ELSE '' END As colunaFROM @tabela 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok =)

em cima disso, terei de pegar apenas algumas linhas, que provavelmente usarei o row_number...

Sim, pode colocar o row_number ou inserir um campo identity(1,1) na sua temporaria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu super certo.

Muito Obrigada!

De nada.

Precisando, de uma pesquisada no fórum que tem muito material bacana!

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.