Как вы используете функцию ROWNUM (или аналогичную) в запросе LibreOffice Base?

Я пытаюсь помочь кому-то, кто хочет поместить данные в алфавитном порядке с номером строки. Я думал, что смогу сделать запрос, подобный этому

, выбрав «name», ROWNUM () в качестве «Row» из «data» порядка по «name»

Но я просто получаю «отказано в разрешении» 'ошибка или подобное.

Кто-нибудь может помочь? Работает ли ROWNUM () так, как я думаю? Или есть лучший способ получить номер строки в данных, упорядоченных по имени?

Вот ошибка, которую я получаю:

Доступ запрещен: ROWNUM в операторе [SELECT "Description" , ROWNUM () ИЗ "ДАННЫХ" ЗАКАЗАТЬ "Описание" ASC]

2
задан 18 January 2013 в 18:29

4 ответа

У меня теперь есть использование решения Инструменты> SQL...

Я запускаю с неотсортированной таблицы "Data". Для меня это - просто таблица с автоматически сгенерированным "идентификатором" и столбцом "Name".Вот

Идентификационное название

0 John

1 Julian

2 Carol

3 Anthony

4 Paul

5 Chris

6 Bob

Я затем создаю новую таблицу "Sorted". Это просто имеет отдельный столбец "Имя". Я создаю его в режиме конструктора и когда я сохраняю его, я не создаю Первичный ключ.

Затем с помощью Инструментов> SQL... Я выполняю эти команды

Введите на "Отсортированное" избранное "Имя" от порядка "Данных" "Именем" Asc;

Измените "Отсортированную" Таблицу, добавляют, ЦЕЛОЕ ЧИСЛО столбца "Item", СГЕНЕРИРОВАННОЕ ИДЕНТИФИКАЦИОННЫМИ ДАННЫМИ AS по умолчанию (ЗАПУСТИТЕ С 1) перед "Именем"

Я получаю это

Название товара

1 Anthony

2 Bob

3 Carol

4 Chris

5 John

6 Julian

7 Paul

который является тем, что я хочу.

Если я добавляю больше строк к таблице "Data" и хочу воссоздать таблицу "Sorted", я должен выполнить эти команды SQL

Удалите из "Отсортированного";

Измените Таблицу "Отсортированный" столбец "Item" отбрасывания;

Введите на "Отсортированное" избранное "Имя" от порядка "Данных" "Именем" Asc;

Измените "Отсортированную" Таблицу, добавляют, ЦЕЛОЕ ЧИСЛО столбца "Item", СГЕНЕРИРОВАННОЕ ИДЕНТИФИКАЦИОННЫМИ ДАННЫМИ AS по умолчанию (ЗАПУСТИТЕ С 1) перед "Именем"

1
ответ дан 18 January 2013 в 18:29

Если вы пытаетесь создать новый столбец с последовательными числами:

Это работает в Calc, я пропустил, что вы работаете в базе

  1. Создать новый столбец
  2. Введите свой начальный номер в первой ячейке (в большинстве случаев # 1).
  3. Выйдите из ячейки и вернитесь в ячейку.
  4. Ячейка будет иметь сплошную черную рамку с черным квадратом. кнопка в правом нижнем углу
  5. Щелкните мышью по этой кнопке и перетащите ее так далеко, как вам нужно, чтобы создать все нужные вам числа

Я надеюсь, что это то, что нужно Вы искали

Вильгельма

0
ответ дан 18 January 2013 в 18:29

Самостоятельное соединение с «< =» объединением условий и count () group by может сделать эту работу. Приведенные ниже запросы возвращают тот же результат.

SQL> выбрать rownum, t. * Из (выберите * в порядке t сначала по нулям) t;

SQL> выбрать количество (t1.n) как rownum, t2.n, t2.a , t2.b из t t1, t t2, где nvl (t1.b, '') < nvl (t2.b, '') или nvl (t1.b, '') = nvl (t2.b, '') и t1.n < = t2.n группируются по t2.n, t2.a, t2 .b упорядочить на 1;

ROWNUM          N A                              B
<час>
     1       1004 ddd
     2       1003 ccc                            --
     3       1002 bbb                            MM
     4       1001 aaa                            NN

4 выбранных строки.

0
ответ дан 18 January 2013 в 18:29

Еще одним решением было бы следовать инструкциям в этом посте

https://forum.openoffice.org/en/forum/viewtopic.php?f=83&t=61183

Речь идет об обновлении до более новой версии движка HSQL вместо той, которая поставляется в комплекте с OpenOffice Base. Новый движок HSQL обеспечивает поддержку ROWNUM (), ROW_NUMBER () OVER, конструкций ANSI SQL и т. Д.

0
ответ дан 18 January 2013 в 18:29

Другие вопросы по тегам:

Похожие вопросы: