Oi! Seja bem-vindo!

Hoje vou mostrar 3 formas de incluir números nas linhas do SELECT, assim quando você copiar o resultado para outro local ou sistema, por exemplo o Excel, você levará junto com as informações, os números corretos de cada linha de dados.

 

Essa técnica também é útil quando você precisa criar uma tabela com chave primária a partir de uma carga de dados ou resultado de um SELECT.

 

Ao invés de ter isso (que é o modo padrão):

select sem números de linhas

Você terá isso:

select com números de linhas

Aqui vai o vídeo mostrando os 3 exemplos:

Como Incluir números nas linhas do SELECT

Conforme a imagem mostrada acima, numerar um SELECT depende de incluir uma nova coluna no resultado. Temos inúmeras formas de fazer isso, e hoje lhe mostrarei as 3 mais utilizadas no mercado.



------------------------------------------------------------------
-- 3 formas de numerar um select
------------------------------------------------------------------
--------------------------------------------------
-- Banco de dados para nosso teste
--------------------------------------------------
-- Banco de testes
use master
if db_id('curso') is not null 
	drop database curso
go
create database curso
go
use curso
go
-- Criar carga de testes
create table produtos (
	nm varchar(100),
	vl decimal(10,2),
	ic_ativo bit not null default (1)
)
insert into produtos (nm, vl) values 
	('Mouse Gammer 25 botões', 200),
	('Teclado Gammer 350 teclas', 300),
	('Monitor 32 Pol Full HD', 1000),
	('RAM DDR4 4GB Powerturbo', 500),
	('CPU Nasa 10Ghz', 2000),
	('HD SSD 1TB', 2000)


-- SELECT PADRÃO (possui números de linhas, mas não podemos copiar para outros locais)
select * from produtos


--------------------------------------------------
-- row_number(): SQL2005+
--------------------------------------------------
select 
	row_number() over (order by (select null)) linha,
	*
from produtos

--------------------------------------------------
-- identity: SQL2005-
--------------------------------------------------
select 
	identity(smallint, 1, 1) 'linha',
	*
into #produtos_id
from produtos

select * from #produtos_id

drop table #produtos_id

--------------------------------------------------
-- Sequence: SQL2012+
--------------------------------------------------
-- Criando sequencia
if object_id('sLinhas') is not null drop sequence sLinhas
create sequence sLinhas as int start with 1

select 
	next value for sLinhas as Linha,
	*
from produtos


 

CONCLUSÃO

Seja para enviar dados a outro sistema ou criar uma nova tabela com chave primária, incluir números nas linhas do SELECT é uma tarefa bastante simples e útil. Agora é escolher sua forma preferida e mandar bala!

Abraço do seu amigo Josué 🙂

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *