Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >来自另一个Case表达式的case表达式

来自另一个Case表达式的case表达式
EN

Stack Overflow用户
提问于 2020-12-07 10:28:04
回答 2查看 42关注 0票数 0

我有SQL代码示例,它返回周数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
,CASE       WHEN dateadd(MONTH, datediff (MONTH,AgentStart, getdate()), AgentStart) > getdate()
            THEN datediff(MONTH, AgentStart, getdate()) - 1
            ELSE datediff(MONTH, AgentStart, getdate())
            END as 'Month'

我不去想现在如何添加一个新的列,它将给我提供这个结果(来自同一个表):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
,CASE       WHEN **MONTH FROM CASE STATEMENT ABOVE** BETWEEN 0 AND 3 THEN 'Youngest' 
            WHEN **MONTH FROM CASE STATEMENT ABOVE** BETWEEN 4 AND  5 THEN 'Young' 
            WHEN **MONTH FROM CASE STATEMENT ABOVE** BETWEEN 6 AND 11 THEN 'Medium' 
            ELSE 'Old'
            END AS "Status"
EN

回答 2

Stack Overflow用户

发布于 2020-12-07 10:32:23

您可以使用子查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT `month`,
        CASE WHEN `month` BETWEEN 0 AND 3 THEN 'Youngest' 
             WHEN `month` BETWEEN 4 AND  5 THEN 'Young' 
             WHEN `month` BETWEEN 6 AND 11 THEN 'Medium' 
             ELSE 'Old'
        END AS Status
FROM   (SELECT CASE  
               WHEN dateadd(MONTH, datediff (MONTH,AgentStart, getdate()), AgentStart) > getdate()
               THEN datediff(MONTH, AgentStart, getdate()) - 1
               ELSE datediff(MONTH, AgentStart, getdate())
               END as `Month`
       FROM    mytable) t
票数 1
EN

Stack Overflow用户

发布于 2020-12-07 10:33:23

您可以编写一个内联视图来完成此任务

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select case WHEN x.month_value BETWEEN 0 AND 3 THEN 'Youngest' 
            WHEN x.month_value  BETWEEN 4 AND  5 THEN 'Young' 
            WHEN x.month_value  BETWEEN 6 AND 11 THEN 'Medium' 
            ELSE 'Old'
            END AS "Status"
       ,--rest of the columns from the inner query...
  from (
    select CASE 
               WHEN dateadd(MONTH, datediff (MONTH,AgentStart, getdate()), AgentStart) > getdate()
                THEN datediff(MONTH, AgentStart, getdate()) - 1
                ELSE datediff(MONTH, AgentStart, getdate())
                END as month_value --naming it as month_value
    from <table>
       )x
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65179991

复制
相关文章
CASE语句与CASE表达式
case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆。本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项。 一、简单case语句
Leshami
2018/08/14
1.3K0
SQL CASE 表达式
CASE 表达式分为简单表达式与搜索表达式,其中搜索表达式可以覆盖简单表达式的全部能力,我也建议只写搜索表达式,而不要写简单表达式。
黄子毅
2022/04/18
8200
SQL中CASE表达式的妙用
case 表达式分为搜索表达式和简单表达式,由于搜索表达式包含了简单表达式的所有用法,此处仅介绍搜索表达式的用法。
披头
2020/08/17
1K0
decode()和SQL语法case表达式
使用SQL99标准通用语法中的case表达式,将职位是分析员的,工资+1000;职位是经理的,工资+800;职位是其它的,工资+400
阮键
2021/03/05
5760
Oracle PL/SQL基础语法学习16:CASE Expression(CASE表达式)
PL/SQL是Oracle数据库中的一种嵌入式语言,其功能强大,可以进行存储过程和函数的编写,帮助开发者快速高效地处理数据库操作。
SQLplusDB
2023/08/17
6020
Oracle PL/SQL基础语法学习16:CASE Expression(CASE表达式)
学习SQL【8】-谓词和CASE表达式
谓词 什么是谓词 谓词就是返回值为真值的函数。对于通常的函数来说,返回值有可能是数字、字符串和日期等,但是谓词的返回值全部是真值。这也是谓词和函数的最大区别。 谓词主要有以下几种: LIKE BETWEEN IS NULL、IS NOT NULL IN EXISTS LIKE谓词—字符串的部分一致查询 截止目前,我们使用字符串作为查询条件的例子使用的都是=。这里的=只有在字符串完全一致时才为真。与之相反,LIKE谓词更加模糊一些,当需要进行字符串的部分一致查询时需要使用该谓词。 部分一致大体可以分为前方一致
爱吃西瓜的番茄酱
2018/04/04
2.3K0
神奇的 SQL 之 CASE表达式,妙用多多 !
前言   历史考试选择题:黄花岗起义第一枪谁开的? A宋教仁 B孙中山 C黄兴 D徐锡麟,考生选C。   又看第二题:黄花岗起义第二枪谁开的? 考生傻了,就选了个B。   接着看第三题:黄花岗起义中,
青石路
2019/07/30
7820
神奇的 SQL 之 CASE表达式,妙用多多 !
算法工程师-SQL进阶:强大的Case表达式
相信大家对SQL都非常熟悉了,可能有些小伙伴会有疑问,算法工程师不是跑模型的吗?还需要学SQL?其实,很有必要!原因大概有以下几点吧:
小萌哥
2020/07/21
2.3K0
算法工程师-SQL进阶:强大的Case表达式
语法解析器续:case..when表达式计算
之前写过一篇博客,是关于如何解析类似sql之类的解析器实现参考:https://www.cnblogs.com/yougewe/p/13774289.html
烂猪皮
2021/04/02
9210
LeetCode MySQL 1440. 计算布尔表达式的值(case when then else end)
文章目录 1. 题目 2. 解题 1. 题目 表 Variables: +---------------+---------+ | Column Name | Type | +---------------+---------+ | name | varchar | | value | int | +---------------+---------+ name 是该表主键. 该表包含了存储的变量及其对应的值. 表 Expressions: +-----
Michael阿明
2021/02/19
5640
class、case class、object、case object的区别
case class的成员默认都是常量,所以case class适用于数据成员不改变的场景,而且case class之间可以进行比较
opencode
2022/12/26
8850
带case操作的update语句_多个case when嵌套
1、场景:由于多次循环执行数据库操作是非常耗费性能的。因此,我们需要尽可能一条UPDATE语句更新多条数据。
全栈程序员站长
2022/10/04
2.7K0
case 判断
• 格式 case 变量名 in value1) command ;; value2) command ;; *) commond ;; esac 如果case中的某个value是一样的,我们可以这样写: 在case程序中,可以在条件中使用 |,表示或的意思, 比如 2|3) command ;; 来个脚本练习下: 此脚本用来判断一个输入一个学生的成绩来查询等级如何。 在练习之前我们一定要想的全面些! 假如用户输入的不是数字 假如用户没有任何输
老七Linux
2018/05/09
1K0
数据库原理及应用(七)——函数、谓词和CASE 表达式
一、函数 sql自带许多用起来很方便的函数,大致分为以下几类: 函数类型 作用 算术函数 用来进行数值计算 字符串函数 用来进行字符串的操作 日期函数 用来进行日期操作的函数 转换函数 用来转换数据类型和值的函数 聚合函数 用来进行数据聚合的函数 ABS\MOD\ROUND ABS()可以求一个数的绝对值 ---- MOD(除数,被除数)可以用于求余 !!!! SQL Server不支持该函数。 ---- ROUND(数值,保留位数)可以用来进行四舍五入 字符串函数 CONCAT(str1, str2,
Regan Yue
2023/03/30
4050
数据库原理及应用(七)——函数、谓词和CASE 表达式
java case when用法_sql case when 嵌套
客户那边通过一个“时间范围筛选”控件来动态修改图表的数据。其很多指标的计算逻辑类似于:
全栈程序员站长
2022/10/04
3.1K0
【DB笔试面试455】条件表达式CASE和DECODE的区别是什么?
在SQL语句中使用IF-THEN-ELSE逻辑,可以使用两种方法:CASE表达式、DECODE函数。
AiDBA宝典
2019/09/30
1.2K0
Letter Case Permutation
LWC 72: 784. Letter Case Permutation 传送门:784. Letter Case Permutation Problem: Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could cre
用户1147447
2019/05/26
4950
oracle中case when_oracle case when 嵌套
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。 还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
全栈程序员站长
2022/11/14
9390
11 To lower case
Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.
devi
2021/08/18
3480
20.8/20.9 case判断
case判断 格式 case 变量名 in value1) command ;; value2) command ;; *)
运维小白
2022/01/06
4150

相似问题

Case表达式vs Case语句

10

Case when表达式from Case When Result

132

拼音: case表达式

30

SQL CASE表达式

312

MAX With CASE表达式

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文