Apresentação Artigos Questões Sugestões
LoginRegisto




BEM VINDO(A) ao SQL SERVER Explicado em Português!
Neste espaço irão sendo publicados, com frequência, artigos escritos em português.

Aqui poderá encontrar respostas para algumas das suas actuais questões relativas a SQL Server e fazer pesquisas de modo a encontrar informação que seja do seu interesse em vários domínios.

Para tal basta registar-se gratuitamente como utilizador!

É com grande prazer que o(a) convido a entrar e a conhecer mais sobre este espaço, bem como sobre a forma como poderá usufruir dele na íntegra, na página de: Apresentação.


Artigo do Dia



A Função ROW_NUMBER. O que é? Para que serve? Ex: Paginação do lado do servidor; Como encontrar registos "a mais":



CREATE TABLE #Contactos (Nome varchar(100), Contacto varchar(150))

INSERT INTO #Contactos VALUES ('Nuno André', 'nuno.andre@xmail.com')
INSERT INTO #Contactos VALUES ('Andreia Costa', 'acosta@xmail.com')
INSERT INTO #Contactos VALUES ('Carlos Fernandes', 'gtyu@pmail.pt')
INSERT INTO #Contactos VALUES ('Artur Domingos', 'adom@xmail.com')
INSERT INTO #Contactos VALUES ('Nuno André', 'nuno.andre@xmail.com')
INSERT INTO #Contactos VALUES ('Carlos Fernandes', 'gtyu@pmail.pt')
INSERT INTO #Contactos VALUES ('Andreia Costa', 'acosta@xmail.com')

--Utilizacao da funcao:
SELECT ROW_NUMBER() OVER (ORDER BY Nome) as NumContacto, Nome, Contacto
FROM #Contactos





DECLARE @NumPaginaActual int, @NumRegistosPagina int

SET @NumPaginaActual = 1
SET @NumRegistosPagina = 3

SELECT * FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY Nome) as NumContacto, Nome, Contacto
FROM #Contactos
) AS T
WHERE NumContacto >(@NumPaginaActual - 1) * @NumRegistosPagina
AND NumContacto <= @NumPaginaActual * @NumRegistosPagina



SELECT ROW_NUMBER() OVER (PARTITION BY Nome, Contacto ORDER BY Nome) as Ocorrencias, Nome, Contacto
FROM #Contactos






SELECT * FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY Nome, Contacto ORDER BY Nome) as Ocorrencias, Nome, Contacto
FROM #Contactos
) AS T
WHERE Ocorrencias > 1


Concebido por Etienne Lopes. Todos os direitos reservados.