首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较SQL case语句中的3个变量

比较SQL case语句中的3个变量
EN

Stack Overflow用户
提问于 2019-11-21 15:15:07
回答 3查看 703关注 0票数 1

我正在使用case语句比较表中的3个变量值。

这是表格的图像。

我正在尝试的是这个SQL select查询。

代码语言:javascript
运行
复制
select a,b,c,
case(
    when (a=b=c) then "Equilateral"
    when a!=b!=c then "Scalene"
    when a=b!=c or a!=b=c then "Isosceles"
    else "Not A Triangle"
    end as Text
)
from TRIANGLES;

我收到的错误如下图所示。

有谁能指点我哪里做错了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-21 15:20:01

重写您的表达式,这是不受支持的。

代码语言:javascript
运行
复制
select a,b,c,
case
    when (a=b) and (b=c) then 'Equilateral'
    when (a!=b) and (b!=c) then 'Scalene'
    when (a=b and b!=c) or (a!=b and b=c) then 'Isosceles'
    else 'Not A Triangle'
    end as [Text]

from triangles;
票数 3
EN

Stack Overflow用户

发布于 2019-11-21 15:18:36

您不能像a = b = c那样链接比较,您需要显式地分别编写它们并合并它们的结果:

代码语言:javascript
运行
复制
when (a = b AND a = c) then "Equilateral"
when (a != b AND b != c AND c != a) then "Scalene"

诸若此类。

票数 2
EN

Stack Overflow用户

发布于 2019-11-21 15:28:10

不能一次比较3个操作数。您需要使用and运算符对其进行拆分。

代码语言:javascript
运行
复制
select a,b,c,
case(
   when (a=b and b=c) then 'Equilateral'
   when (a!=b and b!=c and c!=a) then 'Scalene'
   when (a=b and b!=c) or (a!=b and b=c) then 'Isosceles'
   else 'Not A Triangle' 
     end as Text
   )
from TRIANGLES;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58969233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档