LIMIT обрезает набор после сортировки. Его часто сочетают с ORDER BY, чтобы получить верхние или нижние значения.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpDbLim 610 of 696 menu
◀ ▶

Ограничение числа строк в выборке

Ключевое слово LIMIT обрезает набор после сортировки.

Его часто сочетают с ORDER BY, чтобы получить верхние или нижние значения. Первые две строки после сортировки по возрастанию:

#include <iostream> #include <sqlite3.h> int main() { sqlite3* db = nullptr; if (sqlite3_open("top_rows.db", &db) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } char* err = nullptr; if (sqlite3_exec( db, "CREATE TABLE IF NOT EXISTS laps (" "id INTEGER PRIMARY KEY," "ms INTEGER NOT NULL" ")", nullptr, nullptr, &err ) != SQLITE_OK) { std::cerr << err << "\n"; sqlite3_free(err); sqlite3_close(db); return 1; } if (sqlite3_exec( db, "INSERT INTO laps (ms) VALUES (120)", nullptr, nullptr, &err ) != SQLITE_OK) { std::cerr << err << "\n"; sqlite3_free(err); sqlite3_close(db); return 1; } if (sqlite3_exec( db, "INSERT INTO laps (ms) VALUES (95)", nullptr, nullptr, &err ) != SQLITE_OK) { std::cerr << err << "\n"; sqlite3_free(err); sqlite3_close(db); return 1; } if (sqlite3_exec( db, "INSERT INTO laps (ms) VALUES (110)", nullptr, nullptr, &err ) != SQLITE_OK) { std::cerr << err << "\n"; sqlite3_free(err); sqlite3_close(db); return 1; } sqlite3_stmt* stmt = nullptr; if (sqlite3_prepare_v2( db, "SELECT ms FROM laps ORDER BY ms ASC LIMIT 2", -1, &stmt, nullptr ) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } while (sqlite3_step(stmt) == SQLITE_ROW) { std::cout << sqlite3_column_int(stmt, 0) << "\n"; } sqlite3_finalize(stmt); sqlite3_close(db); return 0; }

Число в LIMIT можно передать параметром через sqlite3_bind_int, если размер страницы приходит из программы:

#include <iostream> #include <sqlite3.h> int main() { sqlite3* db = nullptr; if (sqlite3_open("top_rows.db", &db) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } sqlite3_stmt* query = nullptr; if (sqlite3_prepare_v2( db, "SELECT ms FROM laps ORDER BY ms DESC LIMIT ?", -1, &query, nullptr ) != SQLITE_OK) { std::cerr << sqlite3_errmsg(db) << "\n"; sqlite3_close(db); return 1; } sqlite3_bind_int(query, 1, 1); if (sqlite3_step(query) == SQLITE_ROW) { std::cout << sqlite3_column_int(query, 0) << "\n"; } sqlite3_finalize(query); sqlite3_close(db); return 0; }

Создайте таблицу sales в market.db с полем amount, добавьте пять сумм и выведите три наибольших.

Выведите одну минимальную сумму, используя сортировку по возрастанию и LIMIT 1.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить