У меня проблема с select в sql. Предположим, у меня есть стол со столбцами: ID, час, температура (много строк). Я хочу выбрать КАЖДЫЙ 96 строк, определенных номером ID
. Я имею в виду номер строки 96, 192, 288 (+96) и т. Д. ... Можете ли вы мне помочь и дать мне правильное заявление sql?Как я могу выбрать точную строку (точное число) в sql
ответ
Если вы определили «Строку» по номеру ID
, вы можете сделать это, найдя модуль ID
(модуль - это «остаток» после того, как вы разделите два числа). Если вы разделите число на 96, а модуль равен 0, то у вас будет кратное 96.
В большинстве СУБД функция MOD()
будет делать трюк здесь, хотя имя функции и ее параметры могут зависеть от СУБД, так что риск покупателя:
SELECT *
FROM <table>
WHERE MOD(ID,96) = 0;
SELECT *
FROM table
WHERE ID % 96 = 0;
Редактировать: символ%, почти во всех языках, оператор по модулю, который, когда используется как% B, делит на Ь и возвращает остаток , Как говорит Дж. Невилл, когда a% b = 0, то a является чистым кратным b.
Следует также заметить, что такой запрос, как SARGable, будет плохо выполняться на больших таблицах.
Можете ли вы дать немного контекста вашему ответу? – basgys
Как вы определяете «Строку» в своих данных? Это каждый 96 'ID'? Кроме того, какие СУБД вы используете (MySQL, SQL Server, Oracle, Postgres и т. Д.)? – JNevill
В соответствии с каким заказом? И какой [тэг: rdbms] вы используете? – Mureinik
Да каждые 96 ID. Я использую MySQL. – maszynista92