MST

星途 面试题库

面试题:SQLite 复杂场景下自定义排序规则的应用

在 SQLite 中有一个表 'products',有字段 'product_name'(文本)、'price'(浮点数)和 'category'(文本)。现在要求实现一个自定义排序规则,对于 'category' 为 'electronics' 的产品,先按 'price' 从高到低排序;对于其他 'category' 的产品,按 'product_name' 的字母倒序排列。请详细说明实现步骤并给出相应的 SQL 代码。
44.6万 热度难度
数据库SQLite

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 可以使用 CASE 语句来区分不同 category 的产品。
    • 对于 categoryelectronics 的产品,按 price 从高到低排序;对于其他 category 的产品,按 product_name 的字母倒序排列。
  2. SQL 代码
SELECT product_name, price, category
FROM products
ORDER BY 
    CASE 
        WHEN category = 'electronics' THEN 1
        ELSE 2
    END,
    CASE 
        WHEN category = 'electronics' THEN price
        ELSE NULL
    END DESC,
    CASE 
        WHEN category != 'electronics' THEN product_name
        ELSE NULL
    END DESC;