Oracle 10g-Express查询

时间:2010-07-02 22:17:36

标签: c# wpf oracle-xe

我想对我的oracle数据库中的表执行特殊查询。

我希望根据我拥有的枚举对结果进行排序。

枚举如下:

private enum days
{
    Saturday = 1,
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
}

我希望根据此枚举对结果进行排序。

1 个答案:

答案 0 :(得分:0)

这听起来更像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。