Ведущая функция SQL

Vedusaa Funkcia Sql



Функция SQL lead() позволяет вам получить доступ к следующей строке от текущей строки с определенным смещением. Короче говоря, функция lead() позволяет вам получить доступ к следующей строке от текущей. Указав значение смещения, вы можете получить доступ к следующим 1, 2, 3 и т. д. строкам от текущей.

Это противоположность функции lag(), которая позволяет вам получить доступ к предыдущим строкам.







Функция SQL Lead()

Синтаксис функции следующий:



LEAD(выражение_значения, смещение [, по умолчанию])
НАД (
[РАЗДЕЛ ПО выражению_раздела]
ПОРЯДОК ПО выражению_сортировки [ASC | DESC]
);

Ниже приведены поддерживаемые аргументы:



  1. выражение_значения – Он определяет возвращаемое значение предыдущей строки. Выражение должно иметь одно значение.
  2. компенсировать – Он указывает, на сколько строк вперед от текущей строки можно получить доступ.
  3. по умолчанию – Устанавливает значение по умолчанию, если смещение выходит за пределы раздела. По умолчанию значение установлено в NULL.
  4. Разделить по – Он определяет, как разделить данные.
  5. Сортировать по – Он устанавливает формат порядка строк в каждом разделе.

Пример настройки данных

Прежде чем мы углубимся в работу функции lead(), давайте начнем с настройки базовой таблицы для демонстрационных целей.





СОЗДАТЬ ТАБЛИЦУ продуктов (
product_id INT ПЕРВИЧНЫЙ КЛЮЧ AUTO_INCREMENT,
имя_продукта VARCHAR(255),
категория ВАРЧАР(255),
цена ДЕСЯТИЧНАЯ(10, 2),
количество INT,
истечение_даты ДАТА,
штрих-код БИГИНТ
);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
значения («Шляпа шеф-повара 25 см»,
'пекарня',
24.67,
57,
'2023-09-09',
2854509564204);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Яйца перепелиные - консервированные»,
'кладовая',
17.99,
67,
'29 сентября 2023 г.',
1708039594250);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Кофе – Эгг Ног Капучино»,
'пекарня',
92,53,
10,
'22 сентября 2023 г.',
8704051853058);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Груша – Колючая»,
'пекарня',
65,29,
48,
'23 августа 2023 г.',
5174927442238);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Макароны - Волосы ангела»,
'кладовая',
48,38,
59,
'2023-08-05',
8008123704782);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Вино - Просекко Вальдобьяддене»,
'производить',
44.18,
3,
'2023-03-13',
6470981735653);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Кондитерские изделия – французское мини-ассорти»,
'кладовая',
36,73,
52,
'29 мая 2023 г.',
5963886298051);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Апельсин – консервированный, мандарин»,
'производить',
65,0,
1,
'20 апреля 2023 г.',
6131761721332);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)
ценности («Свинина – лопатка»,
'производить',
55,55,
73,
'2023-05-01',
9343592107125);

вставлять
в
продукты (имя_продукта,
категория,
цена,
количество,
Дата окончания срока,
штрих-код)

ценности («Дк Хикиаге Хира Хуба»,
'производить',
56,29,
53,
'2023-04-14',
3354910667072);

Пример 1:

В этом случае у нас есть доступ к таблице «продукты», которая содержит информацию о продукте. Предположим, мы хотим получить следующий штрих-код из текущей строки.

Мы можем использовать функцию lead() следующим образом:



Предположим, у нас есть таблица, содержащая информацию о сотруднике следующим образом:

выбирать
наименование товара,
цена,
вести (штрих-код) над (раздел по категориям
Сортировать по
цена по возрастанию) как next_item
от
продукты р;

Данный код разделяет данные по категориям. Затем он извлекает следующий штрих-код в разделе с помощью функции lead().

Полученный результат выглядит следующим образом:

Пример 2:

Если в определенном столбце нет следующей строки (вне границы), функция устанавливает значение NULL, как показано в предыдущем примере.

Чтобы установить значение по умолчанию для любого доступа за пределами области видимости, мы можем сделать следующее:

выбирать
наименование товара,
цена,
lead(barcode, 1, 'N/A') over (раздел по категориям
Сортировать по
цена по возрастанию) как next_item
от
продукты р;

Мы устанавливаем значение по умолчанию «Н/Д». Это должно заменить любое выходное значение, как показано в следующем выводе:

ПРИМЕЧАНИЕ : Установка смещения на 1 аналогична отказу от указания какого-либо значения.

Пример 3:

Предположим, вы хотите получить доступ к следующим двум строкам из текущей строки. Мы можем сделать это, установив значение смещения равным 2.

Пример запроса проиллюстрирован следующим образом:

выбирать
наименование товара,
цена,
lead(barcode, 2, 'N/A') over (раздел по категориям
Сортировать по
цена по возрастанию) как next_item
от
продукты р;

Этот запрос возвращает следующие две строки в каждом разделе, как показано ниже:

Вот оно!

Заключение

В этом уроке мы узнали, как работать с функцией lead(), чтобы получить следующий элемент из текущей строки.