SQL 查询中的排序与条件筛选技巧
1. ORDER BY 子句与派生属性排序
在 SQL 操作里, ORDER BY
子句可与其他操作配合使用。例如,在下面的命令序列中,就使用了派生属性:
SELECT
P_CODE, P_DESCRIPT, V_CODE, P_PRICE * P_QOH AS TOTAL
FROM
PRODUCT
ORDER BY
V_CODE, TOTAL DESC;
查询结果会先按 V_CODE
升序排序,对于 V_CODE
相同的值,再按派生的 TOTAL
值降序排序。
需要注意的是,如果排序列存在空值,其位置取决于所使用的关系型数据库管理系统(RDBMS)。像 Oracle 就支持添加 NULLS FIRST
或 NULLS LAST
选项,来改变 ORDER BY
子句中空值的排序行为。例如:
SELECT
V_CODE, P_DESCRIPT
FROM
PRODUCT
ORDER BY
V_CODE DESC NULLS LAST;
此命令会返回按 V_CODE
从大到小排序的结果,且空的 V_CODE
会排在列表末尾。