GBase8s数据库select有ORDER BY 子句3

这篇博客介绍了如何在SQL查询中使用CASE表达式来指定排序键,特别是在ORDER BY子句中。示例展示了如何根据列a_col的NULL值和其他条件对数据进行排序,并结合AVG函数进行分组和排序,从而实现自定义的排序逻辑。文章还提供了一个额外的CASE表达式示例,进一步细化了排序依据。
摘要由CSDN通过智能技术生成

按 CASE 表达式排序

ORDER BY 子句可包括 CASE 表达式来指定排序键。

在下列示例中,表 tab_case 的列 a_col 为 INT 类型。对表 tab_case 的查询包括 Projection

列表中的列 a_col 和聚集表达式 SUM(a_col),并通过 a_col 的值将结果分组。ORDER BY 子句

指定两个排序键:

紧跟在 ORDER BY 关键字之后的 CASE 表达式

• AVG(a_col) 聚集表达式:

CREATE TABLE tab_case(a_col INT, b_col VARCHAR(32));

SELECT a_col, SUM(a_col)

FROM tab_case

GROUP BY a_col

ORDER BY CASE

WHEN a_col IS NULL

THEN 1

ELSE 0 END ASC,

AVG(a_col);

在此,ASC 关键字显式地将 CASE 表达式的结果标识为升序排序键。在缺省情况下,AVG(a_col)

排序键也指定升序排序。

在下列类似的示例中,基于同一 tab_case 表上的查询,第二个 CASE 表达式返回或者 1 或者 0

作为返回的 AVG(a_col) 聚集值的排序键值。

SELECT a_col, SUM(a_col)

FROM tab_case GROUP BY a_col

ORDER BY CASE

WHEN a_col IS NULL

THEN 1

ELSE 0 END ASC,

AVG(a_col),

CASE

WHEN AVG(a_col) IS NULL

THEN 1

ELSE 0 END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值