Ir para conteúdo
Anderson dos reis

Row_Number(SQL)no MYSQL

Recommended Posts

Como usar parecido com o row_number(SQL SERVER) NO MYSQL?

EX.

 

SELECT 
(row_number() over (order by base)) AS ID,
substring(base,1,7) as Nome,
substring(base,8,2) as TipoDoRegistro,
substring(base,10,20) as Matrícula,
substring(base,30,70) as Plano,
substring(base,100,22)as NumeroDoCartao,
substring(base,122,2)+'/'+substring(base,124,2)+'/'+substring(base,126,4)as DataNascimento,
substring(base,130,96) as Boleto,
substring(base,226,10)as ValorTotalMensalidades,
substring(base,236,2)+'/'+substring(base,238,2)+'/'+substring(base,240,4)as DataLimitePagamento,
substring(base,244,10)as Sequencial,
substring(base,254,20)as ChaveOrigemRotina
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY base) id, base FROM  dbo.testebase
) TAB WHERE id % 2 > 0                                                                 
ORDER BY id

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, Anderson dos reis disse:

Como usar parecido com o row_number,over e mod (SQL SERVER) NO MYSQL?

EX.

 

SELECT 
(row_number() over (order by base)) AS ID,
substring(base,1,7) as Nome,
substring(base,8,2) as TipoDoRegistro,
substring(base,10,20) as Matrícula,
substring(base,30,70) as Plano,
substring(base,100,22)as NumeroDoCartao,
substring(base,122,2)+'/'+substring(base,124,2)+'/'+substring(base,126,4)as DataNascimento,
substring(base,130,96) as Boleto,
substring(base,226,10)as ValorTotalMensalidades,
substring(base,236,2)+'/'+substring(base,238,2)+'/'+substring(base,240,4)as DataLimitePagamento,
substring(base,244,10)as Sequencial,
substring(base,254,20)as ChaveOrigemRotina
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY base) id, base FROM  dbo.testebase
) TAB WHERE id % 2 > 0                                                                 
ORDER BY id

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ghlevin
      Estou querendo adicionar uma coluna na minha consulta SELECT em MySQL. Eis a consulta completa:
      SELECT cedo.nome_arquivo, cegr.grupo as grupo, cesu.subcategoria as subcategoria, ceba.nome_bandeira as bandeira FROM wt_programas_institucionais cedo inner join wt_programas_institucionais_grupos cegr ON cegr.id = cedo.id_grupo inner join wt_programas_institucionais_subcategorias cesu ON cesu.id = cedo.id_subcategoria inner join wt_programas_institucionais_bandeira ceba ON ceba.id = cedo.bandeira where ativo = 1 order By ceca.categoria ASC, grupo_download ASC, subcategoria_download ASC, nome_arquivo ASC, descricao ASC Essa coluna seria uma numeração e se chamaria ordem. É como se fosse ROW_NUMBER em SQL Server 2008, mas ainda não encontrei uma solução que funcionasse. Como eu queria que mostrasse, por exemplo:
      nome_arquivo grupo subcategoria bandeira ordem ------------- ------ ------------- --------- ------ Nome 1 One Uno 1 1 Nome 2 One Dos 1 2 Nome 3 Two Uno 1 1 Nome 4 Two Uno 1 1 Nome 5 Two Dos 1 2 Nome 6 Three Uno 1 1 Nome 7 Three Uno 1 1 Ou seja, essa numeração depende de como se apresentam categoria, grupo, subcategoria e bandeira. A cada mudança de grupo, recomeça a numeração a partir do 1.
      Como eu posso fazer isso? Vi alguns exemplos mais básicos na Internet, mas por enquanto nenhum que me ajudou.
    • Por Marcio Anderson
      Olá,

      Como realizar uma ordenação quando a ordem lógica entre uma linha e outra é de forma subsequente em zigue-zague conforme abaixo:

      "hora_entrada";"hora_saida";"order_by_hora_entrada";"order_needed" "2014-12-30 10:12:00";"2014-12-30 10:34:00";1;1 "2014-12-30 10:34:00";"2014-12-30 11:20:00";2;2 "2014-12-30 11:06:00";"2014-12-31 17:03:00";3;5 "2014-12-30 11:20:00";"2014-12-30 11:21:00";4;3 "2014-12-30 11:21:00";"2014-12-30 11:06:00";5;4 "2014-12-31 17:03:00";"2015-01-02 10:06:00";6;6 "2015-01-02 09:19:00";"2015-01-02 09:25:00";7;8 "2015-01-02 10:06:00";"2015-01-02 09:19:00";8;7 Se obedecer a ordem "hora_entrada", acima estará correto conforme a coluna 3, mas preciso da ordem hora_entrada > hora_saida > hora_entrada (próxima linha), considerando que a hora_saida de uma linha é igual a hora_entrada da linha a seguir, conforme coluna 4. Verifique que a ordem é bem diferente.

      OBS: esses erros ocorreram quando entre a entrada e a saída pode haver divergências no horário de verão da tramitação.

      Posso ordenar de forma direta ou utilizando row_number?

      Agradeço a ajuda!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.