Consultas de linhas ímpares SQL SERVER
23/11/2017
0
Preciso criar script de consulta que retorne da tabela abaixo somente as suas linhas ímpares, ordenadas de forma ascendente:
declare @table table (coluna1 varchar(50)) insert into @table values ('Anthony'),('Miguel'),('Benjamin'),('Lucca'),('Enzo'),('Martim'), ('Noah'),('Gael'),('Henrique'),('Heitor'),('Nícolas'),('Bernardo'), ('Filipe'),('Arthur'),('Apolo'),('José'),('João'),('Antônio'), ('Vicente'),('Alice'),('Luna'),('Valentina'),('Isabela'),('Larissa' ), ('Laura'),('Antonella'),('Victoria'),('Julia'),('Manuela'),('Ana'), ('Camila'),('Beatriz'),('Elisa'),('Sophia'),('Mayara'),('Maria')
Observação: Não posso alterar o script acima criando outro campo como id.
Aureo Neto
Posts
29/11/2017
Cleyton Alberti
SELECT coluna1 FROM table t1
WHERE t1.coluna1 IN
(
SELECT
CASE WHEN ROW_NUMBER() OVER(ORDER BY t2.coluna1) % 2 = 0
THEN t2.coluna1
ELSE ''
END
FROM table t2
)
29/11/2017
Cleyton Alberti
Dai o correto seria criar uma nova coluna.
10/01/2018
Emerson Nascimento
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY coluna1) linha, coluna1 FROM table
) TAB WHERE linha % 2 > 0
ORDER BY linha
14/01/2018
Vinicius Diniz
select * from @table where mod(ROW_NUMBER(),2) <> 0 order by 1
Então a ideia é dividir o id da lina por 2 se der resto na divisão é impar, depois é só ordenar. Cara eu não tenho sql server instalado aqui por isso não sei se vai dar erro na sintaxe. Eu fiz isso baseado mais no oracle mas acredito que a sintaxe deve estar certa
Espero ter ajudado.
Clique aqui para fazer login e interagir na Comunidade :)