select to_number(concat(to_char(sysdate,'yyyymmdd'),lpad(swoa_news_seq.nextval,4,'0'))) from dual
求大虾!!!

解决方案 »

  1.   

    to_char(sysdate,'yyyymmdd'):将 sysdate(日期类型) 转换为字符串,格式为 YYYYMMDD 也就是 20111012 这样的格式
    lpad(swoa_news_seq.nextval,4,'0'):获取序列的值,如果值不足4位,前面用0补齐,例如:0001
    concat('123', '4'):将 '123' 和 '4' 连接起来,'1234'
    to_number('1234'):将字符串转为数值类型
      

  2.   

    把日期转成2011012,然后再连接一个四位的序列0001...。
    最后再把这个字符串转成数值型20110120001。
    关键是LPAD的用法:如果序列不中四位,以0补全,如果序列是11,LPAD返回结果为0011
      

  3.   

    ---select to_number(concat(to_char(sysdate,'yyyymmdd'),lpad(swoa_news_seq.nextval,4,'0'))) from dual
    函数嵌套查询从内到外查询的,总的查询语句意思to_number()函数将字符串转化数值。
    里边又嵌套函数意思解释:
    lpad(swoa_news_seq.nextval,4,'0'):获取序列值,如果不足四位,前面用0补齐。
    concat('123','4'):是将'123'和'4'连接起来,就是为'1234'
      

  4.   

    http://www.techonthenet.com/oracle/index.php
    Oracle 基础函数和sql!
      

  5.   

    这里面只有to_number是列名,dual是表名吗?
      

  6.   

    to_number 是函数,不是列名
    dual 是表名
      

  7.   


    没有,这里实际只是一个日期+序列转数值类型的处理
    dual 表,是oracle里的一张特殊表,一般都拿来做数据处理的时候用
      

  8.   

    to_char(sysdate,'yyyymmdd'):将 sysdate(日期类型) 转换为字符串,格式为 YYYYMMDD 也就是 20111012 这样的格式
    lpad(swoa_news_seq.nextval,4,'0'):获取序列的值,如果值不足4位,前面用0补齐,例如:0001
    concat('123', '4'):将 '123' 和 '4' 连接起来,'1234'
    to_number('1234'):将字符串转为数值类型 
    dual是oracle数据库自带表名