Сортировки и вычисляемые поля
Создадим таблицу для хранения информации о комнатах.
CREATE TABLE rooms (room_id SERIAL PRIMARY KEY, room_name TEXT, room_width FLOAT, room_length FLOAT);
Заполним созданную таблицу.
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('AAA', 5, 8);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('BBB', 3.2, 2.66);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('CCC', 8, 1.56);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('DDD', 12, 0.5);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('EEE', 2, 3);
Выведем информацию о каждой комнате и площадь каждой комнаты.
SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms;
Выведем информацию о каждой комнате в порядке возрастания площадей комнат.
SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms
ORDER BY (room_width * room_length) ASC;
Выведем информацию о каждой комнате в порядке убывания площадей комнат.
SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms
ORDER BY (room_width * room_length) DESC;
Сортировка по нескольким полям
Создадим таблицу для хранения пар чисел.
CREATE TABLE nnn (n1 INTEGER, n2 INTEGER);
Заполним созданную таблицу.
INSERT INTO nnn (n1, n2) VALUES (8, 5);
INSERT INTO nnn (n1, n2) VALUES (7, 5);
INSERT INTO nnn (n1, n2) VALUES (6, 10);
INSERT INTO nnn (n1, n2) VALUES (6, 12);
INSERT INTO nnn (n1, n2) VALUES (6, 13);
INSERT INTO nnn (n1, n2) VALUES (6, 11);
Выведем записи в отсортированном порядке.
Принцип сортировки: вначале сортируем по полю n1 в порядке возрастания, потом по полю n2 в порядке убывания.
SELECT * FROM nnn ORDER BY n1 ASC, n2 DESC;
Last updated
Was this helpful?