不知道为什么这只会返回第一个结果。日期是日期格式而不是日期时间。我只是开始使用MySQL来使用ORACLE,而这正是我的目标。
SELECT *,
CASE d_date
WHEN max(d_date) THEN 'Today'
WHEN date_add(max(d_date), interval -1 day) THEN 'Yesterday'
ELSE 'other'
END dateID
FROM mike.Tble
答案 0 :(得分:0)
当像MAX这样的聚合函数使用它时返回具有最大值的单个记录。因此,我的理解需要一个子查询。我找不到如何针对大型记录优化此查询,但我有以下内容并允许对大型记录进行优化。
set @today = (SELECT max(d_date) FROM mike.Tble);
set @yesterday = (SELECT date_add(max(d_date), interval -1 day) FROM mike.Tble);
SELECT *, CASE d_date
WHEN @today THEN 'Today'
WHEN @yesterday THEN 'Yesterday'
ELSE 'other'
END AS dateID
FROM mike.Tble
注意:我编辑了查询,其性能优于上次查询