0

我试图通过以下查询找出一周中某一天的平均电量:

SELECT avg(volume)
FROM v_nem_rm16
WHERE to_char(day, 'day') = 'monday';

其中 v_nem_rm16 是一个表和卷,天是它的列,无论我更改天值“星期一”、“星期二”,我的查询都返回 null。

这个查询错了吗?

4

2 回答 2

3

实际上,“DAY”在右侧返回填充空格。如果您使用“RTRIM”,那么您可以避免空值。

SELECT avg(volume)
FROM v_nem_rm16
WHERE RTRIM(to_char(day, 'day')) = 'monday';
于 2013-06-24T06:11:32.630 回答
2

我宁愿使用不同的日期格式 to_char DAY 依赖于 nls,这很糟糕(例如,您的软件在西班牙会失败)。D 返回数字,因此在您的情况下,查询应如下所示

SELECT avg(volume)
FROM v_nem_rm16
WHERE RTRIM(to_char(day, 'd')) = 1;
于 2013-06-24T09:10:12.323 回答