同一条记录,有ID, A, B 三列,都是数字值,我想查ID为某值时的A B列中的较大者,这个SQL要怎么写?比哪ID=1时A=3,B=4,查询结果返回4
ID=2时,A=9,B=20,查询结果返回20

解决方案 »

  1.   

    select case when(a>b) then a else b end from TableA;
      

  2.   


    如果加上id过滤的话就是
    select case when(a>b) then a else b end from TableA where id=&id;
      

  3.   

    case when 即可8.1.7之前用decode + sign控制,麻烦一点
      

  4.   

    1, a,b字段合并为同一字段c2, MAX(从) OVER(PARTITION BY id) 
      

  5.   

    select greatest(a,b)
    from tb 
    where id=1
      

  6.   

    select decode(a>b,a,b) as tab1 from table where id=&a