powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
9 сообщений из 9, страница 1 из 1
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988925
Anton Polikarpov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, друзья.

Решил задачу, только вывел 1 самый длинный адрес.
Вот мой запрос:

SELECT MAX(LENGTH(address)) AS maxlen_address
FROM address_location;

Помогите, пожалуйста, вывести 3 таких адреса.

Входные значения размещены после задания.

Задание:
Найти 3 людей, с самым длинным адресом. Необходимо использовать LENGTH для поиска самого длинного адреса, далее отсортировать от большего к меньшему.


Входные значения:

Создание таблицы address_location:

Код: plsql
1.
2.
3.
4.
CREATE TABLE address_location(
id integer,
address varchar2(50)
);





Таблица address_location

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
INSERT INTO address_location(id, address)
VALUES (1, '');
INSERT INTO address_location(id, address)
VALUES (2, 'ul. Spasskaya, d.88, k.1');
INSERT INTO address_location(id, address)
VALUES (3, 'ul. Begovaya, d.121');
INSERT INTO address_location (id, address)
VALUES (4, 'ul. Klati-Tsetkina, d.4');
INSERT INTO address_location(id, address)
VALUES (5, 'ul. Dementeva, d.31');
INSERT INTO address_location(id, address)
VALUES (6,NULL);
INSERT INTO address_location(id, address)
VALUES (7,'per. Volokolamskiy, dom. 124');
INSERT INTO address_location (id, address)
VALUES (8,'ul. Pastirnaka');
INSERT INTO address_location (id, address)
VALUES (9,'per. Dvigateley , dom. 1');
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988931
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Polikarpov,

сколько денег даешь?
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988936
Anton Polikarpov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,
УЙДИ! :)
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988937
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton Polikarpov,

ROWNUM(ORACLE) и TOP в MSSQL - это не одно и тоже.

Аналогично TOP 3 в MSSQL (по смыслу, но не синтаксически) в Oracle 12c:
Код: plsql
1.
fetch first 3 rows only

.
Примеров с использованием ROWNUM для вывода N первых (да и не первых тоже) строк можно найти самостоятельно.

P.S. Я бы задачу решал используя
Код: plsql
1.
order by length(address) desc nulls last
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988941
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
select * from (
select t.*, row_number() OVER (order by length(t.address) desc nulls last, t.id) as rn
from address_location t
)
where rn <= 3
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988942
Anton Polikarpov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASNexus,

Привет.
Пытался сейчас написать запрос используя то, что Вы написали.

SELECT MAX(LENGTH(ADDRESS)) AS MAXLEN_ADDRESS
FROM address_location
FETCH FIRST 3 ROWS ONLY;

Выводит только одну строку с самым максимальным значением в таблице.
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988945
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton Polikarpov,

Конечно, в запросе
Код: plsql
1.
SELECT MAX(LENGTH(ADDRESS)) AS MAXLEN_ADDRESS

- вот и выводится одна строка со значением максимальной длины адреса (а нужно ведь вывести сами адреса и на подсказку про order by внимание не обратил).
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39988954
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Polikarpov,

Код: plsql
1.
2.
3.
select * from
(select * from tbl order by lenght(field) desc)
where rownum < 4
...
Рейтинг: 0 / 0
ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
    #39989159
Anton Polikarpov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья. Всем спасибо за помощь.
Каждый из ваших советов, действительно помогли мне выполнить задачу.
Благодарю всех за участие и время которое вы использовали для помощи.
Берегите себя!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ROWNUM(ORACLE) и TOP в MSSQL одно и тоже ? + Задание
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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