2016-02-18 2 views
-1

У меня проблема с select в sql. Предположим, у меня есть стол со столбцами: ID, час, температура (много строк). Я хочу выбрать КАЖДЫЙ 96 строк, определенных номером ID. Я имею в виду номер строки 96, 192, 288 (+96) и т. Д. ... Можете ли вы мне помочь и дать мне правильное заявление sql?Как я могу выбрать точную строку (точное число) в sql

+1

Как вы определяете «Строку» в своих данных? Это каждый 96 'ID'? Кроме того, какие СУБД вы используете (MySQL, SQL Server, Oracle, Postgres и т. Д.)? – JNevill

+0

В соответствии с каким заказом? И какой [тэг: rdbms] вы используете? – Mureinik

+0

Да каждые 96 ID. Я использую MySQL. – maszynista92

ответ

0

Если вы определили «Строку» по номеру ID, вы можете сделать это, найдя модуль ID (модуль - это «остаток» после того, как вы разделите два числа). Если вы разделите число на 96, а модуль равен 0, то у вас будет кратное 96.

В большинстве СУБД функция MOD() будет делать трюк здесь, хотя имя функции и ее параметры могут зависеть от СУБД, так что риск покупателя:

SELECT * 
FROM <table> 
WHERE MOD(ID,96) = 0; 
0
SELECT * 
FROM table 
WHERE ID % 96 = 0; 

Редактировать: символ%, почти во всех языках, оператор по модулю, который, когда используется как% B, делит на Ь и возвращает остаток , Как говорит Дж. Невилл, когда a% b = 0, то a является чистым кратным b.

Следует также заметить, что такой запрос, как SARGable, будет плохо выполняться на больших таблицах.

+0

Можете ли вы дать немного контекста вашему ответу? – basgys