SELECT
 max(no) as num 
 FROM  K_YFKC 
 where CL like '[(select to_char(sysdate,'yyyy')from dual)]%号'
备注:cl字段存的是如 [2010]001号内容

解决方案 »

  1.   

    好像没有这么写的,得需要转义啊
    用动态sql吧
      

  2.   

    like 后面的不对,不能那么写
    一个查询语句放到''中,已经成了一个字符串
      

  3.   

    这样修改下SQL> 
    SQL> with K_YFKC as
      2  (
      3  select '[2011]001号' cl,1 no from dual union all
      4  select '[2011]003号' cl,2 no from dual union all
      5  select '[2011]002号' cl,4 no from dual union all
      6  select '[2011]001号' cl,7 no from dual
      7  )
      8  SELECT max(no) as num
      9    FROM K_YFKC
     10   where CL like '['||to_char(sysdate,'yyyy')||']%号'
     11  ;       NUM
    ----------
             7SQL> 
      

  4.   

    where CL like '[(select to_char(sysdate,'yyyy')from dual)]%号'
    这儿不对,改成下面试试,
    where CL like '['||(select to_char(sysdate,'yyyy')from dual)||']___号'
      

  5.   

    改了一下,试一下SELECT
     max(no) as num 
     FROM K_YFKC 
     where CL like '[' || to_char(sysdate,'yyyy') || ']%';
      

  6.   

    [ 代表一个字符,后面的 to_char(sysdate,'yyyy') 又是一串字符,所以需要链接
      

  7.   

    连接符的使用,这是基本语法,所以,主要了解怎么用的即可。
    字符串 + 表达式 时,必须使用连接符拼接,oracle  中的连接符为 || 
       因此结果 => 'zifu' || to_char(number)