简体   繁体   English

case 表达有问题

[英]there is issue in case expression

SELECT ENAME,SAL,
    CASE SAL
        WHEN 'SAL<1000' THEN 'LOWER'
        WHEN 'SAL>1000' THEN 'HIGH'
    END
    RESULT FROM EMP;

This gives an error:这给出了一个错误:

inconsistent datatypes: expected %s got %s不一致的数据类型:预期 %s 得到 %s

What should I do to fix my query?我应该怎么做才能解决我的查询?

Please try this.请试试这个。

SELECT ENAME,SAL,
    CASE WHEN SAL<1000 THEN 'LOWER'
         WHEN SAL>1000 THEN 'HIGH'
    END AS RESULT
FROM EMP;

I think you intend:我想你打算:

SELECT ENAME, SAL,
       (CASE WHEN SAL < 1000 THEN 'LOWER'
             WHEN SAL > 1000 THEN 'HIGH'
        END) as RESULT
FROM EMP;

There are two issues:有两个问题:

  • You have single quotes around the comparisons.您在比较周围有单引号。 A string is not appropriate in this context.在这种情况下,字符串不合适。
  • You have SAL right after CASE , which is also not appropriate.您在CASE之后有SAL ,这也不合适。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM