Jump to content

POWERED BY:

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

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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.
    • By 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!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.