我想对我的 oracle 数据库中的表执行特殊查询。
我希望根据我拥有的枚举对结果进行排序。
枚举如下:
private enum days
{
Saturday = 1,
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
}
我希望根据这个枚举对结果进行排序。
这听起来更像是一个SQL
问题;以下参考资料可能会有所帮助:
http://www.techonthenet.com/oracle/functions/to_date.php
蛮力方法是在你的 SQL 中使用 case 语句;与您的代码片段等效的是:
SELECT CASE WHEN field1 = 'Saturday' then 1
WHEN field1 = 'Sunday' then 2
WHEN field1 = 'Monday' then 3
...
END as dateval,
field1 as datedisplay
FROM table1
ORDER BY 1;
DECODE
SQL 函数也可以正常工作,但我喜欢它,CASE
因为它更易于阅读并避免拼写错误或错误。
如果您从日期值中获得更多信息,我建议您将数据库字段中的日期值保持为 DATE 数据类型。如果您需要找出星期几,使用上面的参考,您可以简单地将您的日期值转换为一个字符串,表示正确的、对应的星期几值。
去测试:
SELECT to_char(SYSDATE, 'DAY') as day_of_week
FROM dual;
产量:
WEDNESDAY
(or whatever day of the week is local to your system)
请记住,从 to_char 函数返回的任何内容都区分大小写。这应该适用于所有版本的 Oracle,包括 Oracle-XE。