select systemname,to_char(a.starttime,'yyyy') as year from dual where year='2010' 如果运行这句话会报错,说year标签不存在,我想问一下大家,用什么方法才能让我用到year这个字段,除了where to_char(a.starttime,'yyyy')=‘2010’这种写法

解决方案 »

  1.   

    dual表中哪有systemname year ...这些字段啊?
      

  2.   

    --加上双引号表示别名
    select systemname,to_char(a.starttime,'yyyy') as "year" from dual where year='2010' ;
      

  3.   


    --不好意思 上面理解错了,需要再嵌套一层
    SELECT * FROM (
    select systemname,to_char(a.starttime,'yyyy') as year from dual )
    where year='2010' 
      

  4.   

    --表名问题 
    --还得嵌套一层select systemname,to_char(a.starttime,'yyyy') as year from dual where year='2010'select systemname,to_char(a.starttime,'yyyy') as year 
    from 正确的表名
     where to_char(a.starttime,'yyyy')='2010' 
    --or
    select * from
    (select systemname,to_char(a.starttime,'yyyy') as year 
    from 正确的表名)
    where where year='2010'
      

  5.   


    ------使用Oracle extract函数提取年月日多么好的东西 ,example:
    select extract(year from sysdate) from dual ;select systemname,extract(year from a.starttime) as year from dual where extract(year from a.starttime) =2010
      

  6.   


    select extract(year from sysdate) from dual
    ----------------------------------------------
    2010