Como você usa a função ROWNUM (ou similar) na consulta do LibreOffice Base?

1

Estou tentando ajudar alguém que queira colocar dados em ordem alfabética com um número de linha. Eu pensei em fazer uma consulta como essa

selecione "nome", ROWNUM () como "Linha" da ordem "data" por "nome"

Mas acabo de receber um erro de "permissão negada" ou algo semelhante.

Alguém pode ajudar? ROWNUM () funciona da maneira que eu acho que deveria? Ou existe uma maneira melhor de obter um número de linha nos dados ordenados pelo nome?

Aqui está o erro que estou recebendo:

Acesso negado: ROWNUM na instrução [SELECT "Description", ROWNUM () FROM "Data" ORDER BY "Descrição" ASC]

    
por Tony 18.01.2013 / 00:07

4 respostas

1

Agora tenho uma solução usando o > SQL ...

Eu começo com a tabela "Data" não classificada. Para mim, é apenas uma tabela com "ID" gerado automaticamente e uma coluna "Nome". Aqui está

Nome do ID

0 João

1 juliano

2 Carol

3 Anthony

4 Paulo

5 Chris

6 Bob

Eu então crio uma nova tabela "Sorted". Isso só tem uma única coluna "Nome". Eu o crio no modo de design e quando o salvo, não crio uma chave primária.

Em seguida, use Ferramentas > SQL ... eu executo esses comandos

Insira em "Ordenado" selecione "Nome" na ordem "Dados" por "Nome" Asc;

Alterar Tabela "Ordenado" adicionar coluna "Item" INTEGER GERADO POR PADRÃO COMO IDENTIDADE (START WITH 1) antes de "Nome"

Eu entendo isso

Nome do item

1 Anthony

2 Bob

3 Carol

4 Chris

5 João

6 juliano

7 Paulo

que é o que eu quero.

Se eu adicionar mais linhas à tabela "Data" e quiser recriar a tabela "Sorted", preciso executar esses comandos SQL

Excluir de "Ordenado";

Alterar a coluna "Classificada" da tabela "Item";

Insira em "Ordenado" selecione "Nome" na ordem "Dados" por "Nome" Asc;

Alterar Tabela "Ordenado" adicionar coluna "Item" INTEGER GERADO POR PADRÃO COMO IDENTIDADE (START WITH 1) antes de "Nome"

    
por Tony 26.01.2013 / 19:31
1

Ainda outra solução seria seguir as instruções neste post

link

Trata-se de atualizar para uma nova versão do mecanismo HSQL, em vez da versão empacotada com o OpenOffice Base. O novo mecanismo HSQL fornece suporte para construções ROWNUM (), ROW_NUMBER () OVER, ANSI SQL, etc.

    
por Edgar 19.01.2016 / 09:56
0

Se você está tentando criar uma nova coluna com números consecutivos:

Isso funciona em calc, senti falta que você está trabalhando na base

  1. Criar nova coluna
  2. Digite seu número inicial na primeira célula (# 1 na maioria dos casos)
  3. Saia da célula e retorne à célula
  4. A célula terá uma borda preta sólida com um botão quadrado preto no canto inferior direito
  5. Clique com o mouse nesse botão e arraste-o o máximo que precisar, para criar todos os números de que precisa

Espero que seja isso o que você estava procurando

Wilhelm

    
por Wilhelm 18.01.2013 / 17:08
0

Agrupar-se com "<=" e o grupo count () pode fazer o trabalho. As consultas abaixo retornam o mesmo resultado.

SQL > selecione rownum, t. * de (selecione * da ordem t por b nulls primeiro) t;

SQL > selecione   contar (t1.n) como rownum,   t2.n,   t2.a,   t2.b de   t t1,   t t2 Onde   nvl (t1.b, '') < nvl (t2.b, '')   ou   nvl (t1.b, '') = nvl (t2.b, '') e t1.n < = t2.n grupo por   t2.n,   t2.a,   t2.b ordenar por 1 ;

ROWNUM          N A                              B
     1       1004 ddd
     2       1003 ccc                            --
     3       1002 bbb                            MM
     4       1001 aaa                            NN

4 linhas selecionadas.

    
por Edgar 18.01.2016 / 17:36