SELECT 
  CASE A1
  WHEN >10 THEN 10
  WHEN <10 THEN 0
  END AS RESULT
FROM TABLE1 如果要对这个查询 的RESULT 进行WHERE 要怎么办?

解决方案 »

  1.   

    select * from (SELECT 
      CASE A1
      WHEN >10 THEN 10
      WHEN <10 THEN 0
      END AS RESULT
    FROM TABLE1 )a where 条件
      

  2.   

    SELECT 
      CASE 
      WHEN A1>10 THEN 10
      WHEN A1<10 THEN 0
      END AS RESULT
    FROM TABLE1 
    where RESULT>50--或SELECT 
      CASE 
      WHEN A1>10 THEN 10
      WHEN A1<10 THEN 0
      END AS RESULT
    FROM TABLE1 
    where (CASE WHEN A1>10 THEN 10 WHEN A1<10 THEN 0 END)>50
      

  3.   

    不允许这种用法:  CASE A1
      WHEN >10 THEN 10
      WHEN <10 THEN 0
      END
    可以这样:
      CASE 
      WHEN A1>10 THEN 10
      WHEN A1<10 THEN 0
      END