我有这个表作为一个例子:
CREATE TABLE "public"."items" (
"name" text NOT NULL,
"type" text NOT NULL
)
初始值:
INSERT INTO "items" ("name", "type") VALUES
('apple', 'fruit'),
('banana', 'fruit'),
('chair', 'furniture'),
('table', 'furniture'),
('grape', 'fruit'),
('cabbage', 'vegetable'),
('beef', 'meat'),
('water', 'drinks'),
('lamp', 'furniture');
如何使用语句查询该表中的行这样我就能先得到fruit
类型的行?
鉴于:
- 有很多
type
s(可能有成千上万个不同的type
s) - 我不关心结果的顺序,除了我想优先获得
fruit
类型第一
例如,我想从这个表中查询5行,结果将是'apple', 'banana', 'grape', 'cabbage' and 'beef'
。
可以使用布尔表达式作为第一个ORDER BY
表达式:
SELECT * FROM items
ORDER BY (type='fruit') DESC, name
;