You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2(z/OS)自定义排序需求:CODE为B/C的行优先按TIMESTAMP排序

DB2 for z/OS 特殊排序实现方案

针对你的需求,直接在ORDER BY中结合CASE表达式定义优先级,再配合时间戳排序即可,以下是可直接使用的SQL语句:

SELECT CODE, TIMESTAMP
FROM 你的表名
ORDER BY
  -- 定义优先级:B/C行优先(0),其余行后置(1)
  CASE WHEN CODE IN ('B', 'C') THEN 0 ELSE 1 END,
  -- 两组内分别按时间戳排序
  TIMESTAMP;

逻辑说明

  1. 第一个排序条件通过CASE生成优先级标识:当CODE为B或C时返回0,其他值返回1。因为0的排序权重小于1,所以B/C的行会整体排在结果集最前面。
  2. 第二个排序条件指定TIMESTAMP,让B/C组内的行按时间戳排序,剩余组的行也按时间戳排序,完全匹配你给出的示例结果。

如果需要按时间戳倒序展示,只需在TIMESTAMP后添加DESC即可:

SELECT CODE, TIMESTAMP
FROM 你的表名
ORDER BY
  CASE WHEN CODE IN ('B', 'C') THEN 0 ELSE 1 END,
  TIMESTAMP DESC;

你之前尝试用CASE未成功,大概率是没有将时间戳作为第二个排序条件,或者CASE的条件判断逻辑有误,按上述写法即可解决问题。

内容的提问来源于stack exchange,提问作者Curt Gilker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:08:10