Сортировка результата выборки в Dart
Без ORDER BY SQLite не обещает стабильный
порядок строк. Явная сортировка задает колонку и
направление ASC или DESC.
Список имен можно вывести по алфавиту возрастания:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('sorted.db');
db.execute('''
CREATE TABLE IF NOT EXISTS cities (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
)
''');
db.execute("INSERT INTO cities (name) VALUES ('rome')");
db.execute("INSERT INTO cities (name) VALUES ('oslo')");
db.execute("INSERT INTO cities (name) VALUES ('lima')");
var rows = db.select(
'SELECT name FROM cities ORDER BY name ASC',
);
for (var row in rows) {
print(row['name']);
}
db.dispose();
Числовые поля сортируют отдельно. DESC
ставит большие значения первыми:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('sorted.db');
db.execute('''
CREATE TABLE IF NOT EXISTS scores (
id INTEGER PRIMARY KEY,
points INTEGER NOT NULL
)
''');
db.execute('INSERT INTO scores (points) VALUES (10)');
db.execute('INSERT INTO scores (points) VALUES (30)');
db.execute('INSERT INTO scores (points) VALUES (20)');
var rows = db.select(
'SELECT points FROM scores ORDER BY points DESC',
);
for (var row in rows) {
print(row['points']);
}
db.dispose();
Создайте таблицу bins в store.db
с полем label, добавьте три метки и
выведите их по алфавиту.
Добавьте поле weight, запишите три веса
и выведите значения от большего к меньшему.