Как выбрать все строки рядом со строкой, соответствующей условию?

Это структура таблицы с 10 строками, но в будущем число строк будет увеличиваться.

Структура таблицы Простой текст:

ID      Date        N1
1     DateTime    9  
2     DateTime    2
3     DateTime    5
4     DateTime    9
5     DateTime    3
6     DateTime    6
7     DateTime    7
8     DateTime    9
9     DateTime    3
10    DateTime    9

Примечание. Строка "DateTime" - это просто символ, это будет любой DateTime.

Я пытаюсь узнать первый номер N1 после числа: 9

Я пробовал несколько способов, но результат не то, что мне нужно.

Ожидаемый результат:

ID      Date        N1
2     DateTime      2
5     DateTime      3
9     DateTime      3

2 ответа2

1

Вы можете использовать временную таблицу для хранения Id записей, где N1 равно 9 . Затем вы выбираете все записи из таблицы Times где Id - это те значения, которые находятся во временной таблице, плюс одна, которая является самой следующей записью из столбца Id самой следующей записью после значения N1 равного 9 .

SQL-запрос

DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE t1 (SELECT id FROM numbers WHERE N1 = 9);
Select * FROM t1;

SELECT * FROM numbers
WHERE id IN (Select id+1 FROM t1);

Или же

SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)

подтверждение

Выберите * из Times

С вышеупомянутым запросом


Дополнительные ресурсы

0

Лучшая версия ответа Moderator Impersonator :

SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .