单个 CASE 语句中的多个列

2024-01-07

我确信这已经被讨论过很多次了,所以请原谅我的重复。我有一个有效的查询,但当前在一个选择中有 6 个 CASE 语句。有人提到,最好的优化方法是将所有 WHEN 条件放在一个 CASE 中。但是,我无法实现这一点

select right(RTRIM(region),5) as cell_id, 
     sum(CASE WHEN LEFT(cparty,3) in ('999','998','997') THEN chargeduration/60 else 0 END) AS OnNet_Minutes,
     sum(CASE WHEN LEFT(cparty,3) in ('996','995') THEN chargeduration/60 else 0 END) AS OffNet_C_Minutes,
     sum(CASE WHEN LEFT(cparty,3) in ('994','993','992') THEN chargeduration/60 else 0 END) AS OffNet_A_Minutes,
     sum(CASE WHEN LEFT(cparty,3) in ('991','990') THEN chargeduration/60 else 0 END) AS OffNet_S_Minutes,
     sum(CASE WHEN LEFT(cparty,2) = '00' THEN chargeduration/60 else 0 END) AS OffNet_T_Minutes,
     sum(CASE WHEN len(cparty) < 6 and LEFT(cparty,1) <> 0 THEN chargeduration/60 else 0 END) AS SC_Minutes            
  from August.dbo.cdr20130818 
  where CHARGEDURATION > 0 and ISNULL(region,'''')<>'''' and LEN(region) > 5
group by right(RTRIM(region),5)
order by right(RTRIM(region),5) asc

就您而言,您无法将它们全部放入一个中CASE,因为结果全部进入选择的不同列。

顺便说一句,你应该删除你的ISNULL(region, '''') <> ''''条件,因为它与配对时是多余的LEN(region) > 5健康)状况。 (什么时候region为空,那么LEN(region)也为空,并且NULL > 5是假的。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单个 CASE 语句中的多个列 的相关文章

  • 分组依据检索 3 个值

    我有以下查询 SELECT Cod MIN Id AS id Min MAX Id AS id Max retrieve value in the middle COUNT AS Tot FROM Table a NOLOCK GROUP
  • T-SQL 相当于 =rand()

    我有几个内容表 我想用随机的文本段落填充它们 在 MS Word 中 我只需输入 rand 即可 我收到三段新鲜的文字 是否有 SQL 脚本 命令可用于使用 t sql 生成随机字典单词 declare Lorem nvarchar max
  • 一次更改多个表

    我正在尝试一次更改多个 SQL Server 2008 R2 表 这是我的代码 use DatabaseName go Declare SchemaUsed varchar 20 dbo create table Tables TableN
  • SQL Server - 如何向登录名授予对所有数据库的读取访问权限?

    我需要向新登录授予对服务器上所有 300 个数据库的读取权限 如何在不选中用户映射区域中的 300 个复选框的情况下完成此操作 一种方法是在 SSMS 的查询菜单上设置 结果为文本 然后执行以下命令 它实际上并不进行更改 而是生成一个脚本供
  • 方法“Boolean Contains(System.String)”不支持对 SQL 的转换

    方法 Boolean Contains System String 不支持对 SQL 的转换 查询是 IsQueryable 但这停止工作 foreach string s in collection1 if s Length gt 0 q
  • 如何在 SQL 中选择“上一条”和“下一条”记录?

    I am building a blog post detail page on my site that will display display a previous and next link similar to how a typ
  • 如何使用外连接和分组依据在查询中包含 NULL 值

    我有两个表 其中包含以下示例数据 Table 1 item name item id item desc 1 apple 2 orange 3 banana 4 grape 5 mango Table 2 user items user i
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • 我想从 Crystal Report .rpt 文件中提取 SQL 查询,有办法做到这一点吗?

    我想从 Crystal Report rpt 文件中提取 SQL 查询 有办法做到这一点吗 我没有任何 Crystal Reports 产品 只有 rpt 文件 下面是一个 Net 代码示例 它从给定目录中的所有 Crystal Repor
  • Oracle中如何选择前100行?

    我的要求是获取每个客户的最新订单 然后获取前100条记录 我编写了一个如下查询来获取每个客户的最新订单 内部查询工作正常 但我不知道如何根据结果获得前 100 名 SELECT FROM SELECT id client id ROW NU
  • 随机排列每行的列值

    我正在使用 C NET 开发多项选择题考试生成器 每次做出报告时 都会在数据库中随机挑选问题 并随机调整选项 我可以做随机问题部分 但我不能做选择的洗牌 我有一张表 其中一行如下 question answer distractor1 di
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • xQuery LIKE 运算符?

    有没有办法以与 SQL 相同的方式使用 XQuery 执行 LIKE 操作 我不想构造一些 startswith endswith 和 contains 表达式 我想要实现的目标的示例 for x in user where x first
  • TSQL - 执行CLR权限

    我从 CLR net Assembly 获得了一个 sql 过程 该过程在执行时返回错误 Msg 6522 Level 16 State 1 Procedure sp HelloWorld Line 0 A NET Framework er
  • 在bigquery中比较两个表的有效方法

    我有兴趣比较两个表是否包含相同的数据 我可以这样做 standardSQL SELECT key1 key2 FROM SELECT table1 key1 table1 key2 table1 column1 table2 column1
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • Mac Sierra 中焦点跟随鼠标(无自动提升)

    我知道有关此主题的其他线程 但它们是基于自动引发的和 或所有答案都指向不再开发的软件 我只是在寻找这个简单的功能 Mac 上焦点跟随鼠标 无需自动提升 Zoooom2 能够执行此操作 但他们不再开发自己的软件 我没有使用终端 需要在具有多个
  • Logstash grok 测试与 rspec 有不同的行为?

    我正在为 grok 过滤器创建一个测试套件 有些日志由logstash 正确丰富 但不是rspec 测试 为了测试这一点 我启动了一个 Logstash 实例 其中包含 stdin stdout 和 json 用于输入和输出 这是示例日志
  • jquery ajax请求跨域时返回状态码0

    我正在尝试发出跨域请求 但服务器无法响应 Access Control Allow Origin 我正在尝试读取响应头 当我尝试读取状态代码或就绪状态时 它返回 0 我的 ajax 请求代码如下 ajax url https account
  • 使用scale_fill_manual手动分配颜色仅适用于某些六边形尺寸

    我正在尝试创建一个由六边形计数箱总结的散点图 我希望用户能够定义色标的计数中断 我有这个工作 使用scale fill manual 但奇怪的是 它只是有时有效 在下面的 MWE 中 使用给定的种子值 如果xbins 10 导致绘图存在以下
  • 在析构函数调用的哪一点,对象不再存在?

    当一个对象的析构函数被调用时 该对象在什么时候不再存在 它是在被调用的那一刻发生的吗 或者在完成删除函数内对象成员的内存之后 我主要问它是为了了解在其析构函数中调用对象的函数是否合法 在析构函数调用的哪一点 对象不再存在 对象的生命周期通过
  • 没有完整堆栈框架的 Symfony 组件

    我在我的项目中使用 Symfony DI Http Kernel Routing 创建您自己的 PHP 框架 https symfony com doc current create framework index html https s
  • 连接两个docker容器

    我有两个容器 第一个带有django第二个是postgresql 好吧 在我的第一个服务器中我运行了django我正在尝试将它与第二个联系起来 第二个容器有端口32770暴露但在端口内部运行5432 在我的本地机器上 我有连接 服务器 本地
  • 如何在 Oracle PLSQL 中透视表?

    我有一个表格如下 KEY 1995 1996 1997 1998 1999 2000 2001 2002 2003 123 0 0 0 461 1188 2049 1056 377 295 我希望数据可见 如下所示 KEY SEQ NBR
  • 即使侧边栏在 SwiftUI 中打开,如何使视图全屏?

    Goal 与地图应用程序一样 当侧边栏打开时 视图显示为全帧大小 视图位于侧边栏下方 我尝试过的 为了最大化视图的大小 我将大小设置为无穷大并添加视图修饰符 ignoresSafeArea 但它仍然不像地图那样全画幅 当我打开侧边栏时 你会
  • Hibernate、Spring 和 MySQL:无法将字符集设置为 UTF-8

    我对 Hibernate 和 Spring 有一个问题 我无法在任何地方使用 UTF 8 字符集 并且我对重音字母有一些问题 例如 这是我的数据库创建的一部分 Dropping and creating database again DRO
  • 将颜色从 CSS 转换为 javafx 颜色对象

    我想知道是否可以转换 CSS 中定义的颜色 例如 root my blue rgb 50 100 200 转换为 JavaFX 中的颜色对象 例如 通过 CSS 定义 我可以在节点上使用 setStyle 来设置其颜色 label1 set
  • Hibernate Validator:将验证限制为给定的约束

    我想分两步执行我的实体的验证 虽然我在保存到数据库之前使用 defaultValidatorFactory 来验证实体的所有字段 但我想在前面的步骤中对实体执行部分验证 但我找不到配置我的验证器 或 validatorFactory 的方法
  • reportlabs 中的 Python 饼图

    我指的是这个链接 http www reportlab com snippets 4 用于生成饼图 在此 每个数据的颜色都是预先定义的 即 10 个数据点有 10 种颜色 如果我有 11 个数据点 那么第 11 个数据点将没有颜色怎么办 我
  • 在Winforms中显示动画gif而不锁定文件

    我正在尝试显示各种文件类型的图像 包括动画 gif文件 在我的 Winforms 应用程序中 我也必须能够修改显示的文件 更改文件名 删除它们 问题是一个Picturebox 锁定图像文件 直到应用程序关闭 http support mic
  • Spark 作业在活动阶段显示未知且卡住

    我正在运行 Spark 作业来计算交互 映射后 我按我想要的键进行分组 Spark 保持在挂起状态 而不显示任何错误和阶段的未知信息 我想知道可能是什么原因导致的以及如何检查它 因为我在本地运行并且这是正常的 检查日志没有错误信息 6 01
  • 测试 R 中是否设置了函数的参数

    我有一个函数f它需要两个参数 p1 and p2 如果对于参数p2没有值传递给函数 值p1应使用 2 代替 但是我怎样才能在函数中找出是否给定了值 问题是变量p2如果没有值则不会初始化 因此我无法测试p2 being NULL f lt f
  • 将 fullcalendar 导出到 google calendar、ical 等

    是否可以将 FullCalendar 事件导出到 google 日历或 ical 中 尝试这个 http michalkorecki com content introducing json xml jquery plugin https
  • SQL Server (localdb)\v11.0 解释

    我正在跟进Code First 到现有数据库 http msdn microsoft com en us data jj200620教程并注意到它建议连接到 localdb v11 0出于学习目的 我尝试使用 SQL Management
  • 使用 ARCORE 将图像放置在墙上

    I want to place an image on the wall with ARCore The image is converted from a regular image view I only detect vertical
  • 单个 CASE 语句中的多个列

    我确信这已经被讨论过很多次了 所以请原谅我的重复 我有一个有效的查询 但当前在一个选择中有 6 个 CASE 语句 有人提到 最好的优化方法是将所有 WHEN 条件放在一个 CASE 中 但是 我无法实现这一点 select right R