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

Apache Impala SQL字符串列排序:日期前置,字符值后置

Apache Impala 字符串列混合日期与字符的排序方案

针对你需要对包含日期格式字符串和纯字符值的column1列排序(日期降序在前、Older在后)的需求,普通ORDER BY无法实现,以下是可行的SQL写法:

SELECT column1, column2, column3 
FROM table1 
ORDER BY 
  CASE WHEN STR_TO_DATE(column1, 'dd.MM.yyyy') IS NOT NULL THEN 1 ELSE 2 END,
  STR_TO_DATE(column1, 'dd.MM.yyyy') DESC;

逻辑说明:

  • STR_TO_DATE(column1, 'dd.MM.yyyy')会将符合dd.mm.yyyy格式的字符串转换为日期类型,无法转换的Older会返回NULL。
  • 第一个排序条件通过CASE WHEN把有效日期标记为1,无效值标记为2,确保所有日期排在Older前面。
  • 第二个排序条件对转换后的日期按降序排列,实现20.03.2023在前、19.03.2023在后的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:57:04