这样的数据
 JYUCYUU_NO        JYUCYUU_MEISAI       GENKA_MEISAI             ....           .......
P04100029781            1                   0                      aaaa            ggg
P04100029781            1                   2 
P04100029781            1                   3                      fff              ff
P04100029781            1                   4 
P04100029781            1                   5                       ggg              dd
P04100029781            1                   6 
P04100029781            1                   7                        ....            ..
P04100029781            1                   8 
P04100029781            1                   9 
P04100029781            1                   10 
写这个sql , 想要求出 GENKA_MEISAI的最大值SELECT 
   max(GENKA_MEISAI)
FROM 
   URIGEN_TBL
WHERE  
   JYUCYUU_NO  = 'P04100029781' and
   JYUCYUU_MEISAI = '1' 
结果是  ---〉 9
 
怎么回事?菜鸟提问,请多指教 

解决方案 »

  1.   


    补充JYUCYUU_NO        JYUCYUU_MEISAI      GENKA_MEISAI
    VARCHAR2(12)        VARCHAR2(4)         VARCHAR2(4) GENKA_MEISAI 列类型时VARCHAR2 , VARCHAR2的最大count 怎么求?
      

  2.   

    都提交完了,, 可能是数据是 VARCHAR2 类型有关 
      

  3.   

    lz,你有where语句条件,它结果当然是P04100029781 所对应的GENKA_MEISAI啦....
      

  4.   

    肯定会是9,因为作为VARCHAR2 类型 的话,9是比10大的,因为比较第一个数字,你可以用order by看一下,10会在2前面,1后面的。你转换一下类型就行了,不知道你的数据库是什么,用int()?或者是cast?这个要自己去查手册了。
      

  5.   

    如果是用字符串存的数值类型,取最大值时,应该将其转换为数值型
    select max(convert(int,isnull(GENKA_MEISAI,0)))...
      

  6.   

    TO_NUMBER
    select max(TO_NUMBER(nvl(GENKA_MEISAI,0)))
      

  7.   

    10楼的不是Oracle,Oracle的写法是select max(TO_NUMBER(nvl(GENKA_MEISAI,0)))
      

  8.   


    我这个是oracle 
    这么写, 能查出来10select max(cast (Urg_genka_meisai as int))谢谢各位, 结贴了