【发布时间】:2019-11-25 04:08:30
【问题描述】:
我的客户希望我按不同类别订购不同的产品,例如当类别名称为“alternator”时,我应该首先显示生产商为“ABC”的零件,当类别名称为“starter”时,我应该首先显示生产者为“DEF”的零件,否则按 images_count 和 parameters_count 排序。我的架构如下所示。
零件(id、producer_id、category_id) 类别(ID,名称) 生产者(id,名称)
我已经尝试通过 ORDER BY 中的结果排序,就像这样。
SELECT *
FROM parts
JOIN categories
ON parts.category_id = categories.id
JOIN producers
ON parts.producer_id = Cast(producers.lauber_id AS INT)
ORDER BY CASE
WHEN categories.NAME = 'alternator'
OR categories.NAME = 'starter' THEN
producers.NAME = 'STARDAX'
OR producers.NAME = 'POWERTRUCK'
END DESC,
CASE
WHEN categories.NAME = 'something else' THEN
producers.NAME = 'POINTGEAR'
OR producers.NAME = 'LAUBER'
END DESC,
images_count DESC,
parameters_count DESC
我不确定我这样做是否正确,我不是 SQL 高手。我正在使用 Postgres。
【问题讨论】:
标签: sql postgresql