select col, DECODE(MOD(to_number(col),2), 0, '偶', 1, '奇') from tabname

解决方案 »

  1.   

    select decode((to_number('1381119899')/2-floor(to_number('1381119898')/2))*2,0,'偶数',1,'奇数','不是整数') from dual;
      

  2.   

    create or replace function is_odd_or_even
    (mynumber in varchar2)
    return number is
    tmp number(1);
    begin
    tmp:=2-mod(to_number(mynumber),2);
    return tmp;
    exception
        when others then
            return 0;
    end is_odd_or_even;SQL> create or replace function is_odd_or_even
      2  (mynumber in varchar2)
      3  return number is
      4  tmp number(1);
      5  begin
      6  tmp:=2-mod(to_number(mynumber),2);
      7  return tmp;
      8  exception
      9      when others then
     10          return 0;
     11  end is_odd_or_even;
     12  /函数已创建。SQL> select is_odd_or_even('123') from dual;IS_ODD_OR_EVEN('123')
    ---------------------
                        1SQL> select is_odd_or_even('12') from dual;IS_ODD_OR_EVEN('12')
    --------------------
                       2SQL> select is_odd_or_even('12a') from dual;IS_ODD_OR_EVEN('12A')
    ---------------------
                        0
      

  3.   

    select decode(mod('1381119898',2), 0, '偶', '奇') from dual
      

  4.   

    select decode(mod(to_number('1381119898'),2), 0, '偶', '奇') from dual;
      

  5.   

    select decode(mod('1381119898',2), 0, '偶', 1,'奇','不是整数') from dual