首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL:为什么在我的代码中“大小写”不能工作?

SQL:为什么在我的代码中“大小写”不能工作?
EN

Stack Overflow用户
提问于 2020-07-17 12:15:44
回答 1查看 385关注 0票数 1

这是我的ER图

我想将business表中的business属性分类为如下所示:

  • 2.0 - 3.0星= '2-3'
  • 4.0 - 5.0星= '4-5'
  • other = 'none'

我试过使用以下代码:

代码语言:javascript
运行
复制
select case b.stars
when (b.stars >= 2.0 and b.stars <=3.0) then '2-3'
when (b.stars >= 4.0) then '4-5'
else 'none'
end stars_group
from business b

但是当这个表不起作用的情况下,如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-17 12:17:23

你混淆了这两种情况。您需要具有不同条件的版本:

代码语言:javascript
运行
复制
select (case when (b.stars >= 2.0 and b.stars <= 3.0) then '2-3'
             when (b.stars >= 4.0) then '4-5'
             else 'none'
        end) as stars_group

如果您只是使用相等,则可以使用一个简单的大小写表达式--但是比较需要严格相等:

代码语言:javascript
运行
复制
select (case trunc(b.stars)
             when 2 then 'Two'
             when 3 then 'Three'
             else 'none'
        end) as stars_group

使用不等式时,需要搜索每个where子句以确定返回的第一个then。所搜索的病例在casewhere之间没有表达。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62953777

复制
相关文章

相似问题

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