db2 - 如何在 DB2 中按 TO_CHAR(datefield,'MM-YYYY') 排序
问题描述
我需要按月和年以升序格式排序。我尝试使用ORDER BY readingdate
但它导致了eoor。下面是查询
select A,B,C,(TO_CHAR(readingdate,'MM-YYYY'))mth
from TABLE1
inner join TABLE2
left join TABLE3
where (Readingdate >= DATE ('2019-11-01')
AND Readingdate < DATE ('2020-01-31') + 1 DAY)
group by A,B,C,TO_CHAR(readingdate,'MM-YYYY')
order by mth;
输出
A Mth
200 01-2020
200 11-2019
200 12-2019
预期产出
A Mth
200 11-2019
200 12-2019
200 01-2020
解决方案
您必须按保持所需顺序的值进行分组,然后进行转换,例如:
select A,B,C, TO_CHAR(mth,'MM-YYYY') mthchar
from (
select A,B,C, last_day(readingdate) mth
from TABLE1
inner join TABLE2
left join TABLE3
where (Readingdate >= DATE ('2019-11-01')
AND Readingdate < DATE ('2020-01-31') + 1 DAY)
group by A,B,C,last_day(readingdate)
)
order by mth;
推荐阅读
- javascript - for 循环遍历 index[0] 两次
- python - 我需要创建一个 pandas 数据框,显示推文所代表的主题
- r - 将 data.frame 对象中的数值变量添加到包含 multpolygons 的 sf 对象
- spring - 使用 mongoDb(如 Firebase 或 Realtime Server 应用程序)的 Spring Boot
- javascript - 为什么我的反应应用程序中的后续警报会显示给定会话中显示的第一个警报中的“useCountdown 挂钩计时器”?
- php - 如何在 Wordpress 中使用新的 wp_query 实例
- reactjs - 如何使用 React hook 在 React Native 中使用 TextInput 更改对象数组的特定字符串?
- javascript - 如何从 Vue 组件调用 Rest API?
- c# - 为什么我的 SQLite 数据库被认为是只读的?
- c++ - 为什么 g++ 编译的文件以 % 符号结尾?