powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Номер строки в результирующем наборе
15 сообщений из 15, страница 1 из 1
Номер строки в результирующем наборе
    #40036707
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Есть запрос с определёнными условиями который даёт несколько строк. Есть заранее известное условное id нужной строки.

Можно ли как-то одним запросом получить порядковый номер конкретной строки в наборе?

Могу конечно получить весь набор и далее перебором программно выяснить порядковый номер, но это, как мне кажется, не гуманно.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036709
Надфиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036712
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
san4es.spb,

зависит от сортировки, часто rownum хватает

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> ed
Wrote file afiedt.buf

  1* select deptno,rownum  from dept order by 1 desc
SQL> /

    DEPTNO     ROWNUM
---------- ----------
        40          4
        30          3
        20          2
        10          1



авторЕсть заранее известное условное id нужной строки.


мне не понятно что Вы под етим id поразумеваете
не помешал Бы примерчик

.....
stax
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036716
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

я имею ввиду, что у меня есть некий параметр, по которому я могу найти одну нужную мне строку.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036717
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DEPTNO ROWNUM
---------- ----------
40 4
30 3
20 2
10 1




допустим, я знаю что DEPTNO = 30 в нужной мне строке (и это значение уникально).
требуется достать только эту строку или её ROWNUM.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036722
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделал

SELECT * FROM (SELECT ID, ROW_NUMBER() OVER (ORDER BY employee_id) AS emp_id FROM *** WHERE ***) WHERE ID = 30

можно ли упростить запрос?
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036723
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надфиль, Спасибо!
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036724
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
san4es.spb,

А смысл у этого упражнения какой? При добавлении/удалении строк в таблицу, без дополнительных ухищрений и ограничений, гарантии повторяемости номера строки не будет.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036726
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
san4es.spb
Stax,

я имею ввиду, что у меня есть некий параметр, по которому я могу найти одну нужную мне строку.

так и ищите по параметру
имхо, так самое правильно, а вот если и по параметру несколько строк ...

.....
stax
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036729
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
san4es.spb
Stax,

я имею ввиду, что у меня есть некий параметр, по которому я могу найти одну нужную мне строку.

так и ищите по параметру
имхо, так самое правильно, а вот если и по параметру несколько строк ...

san4es.spb

можно ли упростить запрос?


Код: plsql
1.
SELECT * FROM (SELECT ID FROM *** WHERE ***) WHERE ID = 30


.....
stax
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036730
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Скорее всего это реализация пейджинга, но лучше дождаться ответа ТС.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036766
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица только накапливается. Порядок строк меняться не будет.

Это не пейджинг, это нюансы документооборота в одном учреждении. зачем и почему им так надо - не моего ума дела.

В принципе мой вариант даёт нужный результат.
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036788
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
san4es.spb

В принципе мой вариант даёт нужный результат.


если Вы о 22264956

то оптимизатор выбросит row_number, так как поле в дальнейшем не используется

.....
stax
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036835
san4es.spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что за оптимизатор? где его взять как посмотреть?
...
Рейтинг: 0 / 0
Номер строки в результирующем наборе
    #40036840
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
san4es.spb,

первое что гугл нашел

https://docs.oracle.com/cd/E18283_01/server.112/e16638/optimops.htm

.....
stax
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Номер строки в результирующем наборе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]