ORDER BY 子句的 CASE WHEN 语句

2023-12-07

我正在使用 SQL Server 2008 R2。

我想要对表中的记录进行基于优先级的排序。

所以我在 ORDER BY 子句中使用 CASE WHEN 语句。 ORDER BY 子句如下:

ORDER BY 
CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount desc, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END, 
CASE WHEN TblList.HighCallAlertCount <> 0 THEN TblList.HighCallAlertCount desc, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
Case WHEN TblList.HighAlertCount <> 0 THEN TblList.HighAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
CASE WHEN TblList.MediumCallAlertCount <> 0 THEN TblList.MediumCallAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
Case WHEN TblList.MediumAlertCount <> 0 THEN TblList.MediumAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, Patlist.MiddleName ASC END

但它给了Incorrect syntax near the keyword 'desc'

有什么解决办法吗?

我还可以有:

TblList.PinRequestCount <> 0 and TblList.HighCallAlertCount <> 0 and
TblList.HighAlertCount <> 0` and TblList.MediumCallAlertCount <> 0 and  
TblList.MediumAlertCount <> 0 

同时。


CASE is an 表达- 它返回一个single标量值(每行)。它不能返回其他东西的解析树的复杂部分,例如ORDER BY的条款SELECT陈述。

看起来你只需要:

ORDER BY 
CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount END desc,
CASE WHEN TblList.HighCallAlertCount <> 0 THEN TblList.HighCallAlertCount END desc, 
Case WHEN TblList.HighAlertCount <> 0 THEN TblList.HighAlertCount END DESC,
CASE WHEN TblList.MediumCallAlertCount <> 0 THEN TblList.MediumCallAlertCount END DESC,
Case WHEN TblList.MediumAlertCount <> 0 THEN TblList.MediumAlertCount END DESC,
TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC

或者可能:

ORDER BY 
CASE
   WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount
   WHEN TblList.HighCallAlertCount <> 0 THEN TblList.HighCallAlertCount
   WHEN TblList.HighAlertCount <> 0 THEN TblList.HighAlertCount
   WHEN TblList.MediumCallAlertCount <> 0 THEN TblList.MediumCallAlertCount
   WHEN TblList.MediumAlertCount <> 0 THEN TblList.MediumAlertCount
END desc,
TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC

判断以上哪一项(或其他内容)是您正在寻找的内容有点棘手,因为您没有解释了您想要实现的实际排序顺序是什么,并且 b) 未提供任何排序​​顺序样本数据以及预期的结果,我们可以从中尝试deduce您想要实现的实际排序顺序。


这可能就是我们正在寻找的答案:

ORDER BY 
CASE
   WHEN TblList.PinRequestCount <> 0 THEN 5
   WHEN TblList.HighCallAlertCount <> 0 THEN 4
   WHEN TblList.HighAlertCount <> 0 THEN 3
   WHEN TblList.MediumCallAlertCount <> 0 THEN 2
   WHEN TblList.MediumAlertCount <> 0 THEN 1
END desc,
CASE
   WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount
   WHEN TblList.HighCallAlertCount <> 0 THEN TblList.HighCallAlertCount
   WHEN TblList.HighAlertCount <> 0 THEN TblList.HighAlertCount
   WHEN TblList.MediumCallAlertCount <> 0 THEN TblList.MediumCallAlertCount
   WHEN TblList.MediumAlertCount <> 0 THEN TblList.MediumAlertCount
END desc,
TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORDER BY 子句的 CASE WHEN 语句 的相关文章

  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SELECT NULL、*、NULL、NULL 中令人困惑的 SQL 错误

    的背景我试图解决第四个现实任务 https www hackthissite org playlevel 4 在 hackthissite org 中 无法确切地弄清楚我应该在 URL 中注入什么 SQL 来检索电子邮件列表 浪费了几个小时
  • 如何从子查询 SQLite 接收两个值

    我是一个自学的 SQLite 新手 我有三个表 person pet person pet schema 是 CREATE TABLE person id INTEGER PRIMARY KEY first name TEXT last n
  • 当您在 SQL Server 中创建新登录名时,它默认选择 db_owner

    我在 SQL Server 2008 R2 中创建新的 SQL 用户时遇到一些问题 当我使用 SQL Server Management Studio 时 它会检查db owner默认情况下的角色成员资格 我只想创建一个具有只读访问权限的新
  • 删除连接中不存在的记录

    想象两个表 A 和 B A B 1 2 2 3 6 5 4 7 9 11 13 23 9 现在我想从 A 中删除 B 中不存在的记录 例如从 A 中删除 1 6 和 4 我最初的想法是您可以 否定 联接的结果 DELETE FROM A W
  • JDBC 和多线程

    我正在尝试使用多线程方法运行一些查询 但是我认为我做错了什么 因为我的程序需要大约五分钟来运行一个简单的选择语句 例如 SELECT FROM TABLE WHERE ID 123 我的实现如下 我使用一个连接对象 在我的运行方法中 pub
  • 查询和扫描多行性能缓慢

    下面的查询一行的执行时间为 6 18 分钟 Exception type 1 的基数值为 3 我不知道如何提高性能 Query select count 1 as rage tap from summary funnel 1066 s jo
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • Oracle SQL 分析查询 - 类似递归电子表格的运行总计

    我有以下数据 由A值 排序依据MM 月 The B列计算为GREATEST current value of A previous value of B 0 以类似电子表格的方式 我怎样才能计算B使用 SQL 查询 我尝试使用分析函数 但未
  • MySQL为每个组创建带有序列号的视图

    我在此网站上看到了类似的解决方案 但由于变量使用限制 它在视图中不可用 在MySQL中为每个组生成序列 https stackoverflow com questions 30118096 generating sequence for e
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t
  • SQL Server 列的默认随机 10 个字符串值

    我有一个专栏rndm在我的桌子上 客人 现在 对于领域Default value or Binding对于表 每当插入新行时 我想自动将 10 个字符的随机字符串插入到该列中作为默认值 该随机字符串不能包含特殊字符 只能包含以下字符a zA

随机推荐

  • 如何将 Web Audio API 连接到 Tone.js?

    我正在做一个在线音频播放器 所以我想整合变调器在我的应用程序中 可以在Tone js但不在网络音频API 所以我的想法是连接Tonejs 变调器 to 网络音频 API 音频上下文 有什么可行的办法吗 这是我的代码供参考 var audio
  • 如何在静态基方法中创建继承的实例?

    从一个例子来看 我可能会这样做 var obj Activator CreateInstance GetType 但不确定如何在静态基方法中获取继承类的 typeof 这是最好的前进方式吗 public static Method
  • 如何从 SQL Server 中的表查询 Xml 值和属性?

    我有一个表 其中包含Xml column SELECT FROM Sqm 的一个样本xml一行的数据将是
  • 了解通过动态分配引用传递参数

    我正在尝试了解如何在 C 语言中通过引用传递参数 所以我编写了这段代码来测试参数传递的行为 include
  • 如何从互动经纪商API获取历史股价数据?

    我想使用IBAPI来获取历史股票数据 我的代码不起作用并且不返回任何内容 有人可以帮我编辑代码吗 谢谢 from ibapi import client from ibapi import wrapper import datetime f
  • Laravel flash 或会话消息不会过期 [ 未维护更新 ]

    经过一些研究后更新经过一些研究 我得出的结论是 在我明确保存它们之前 我的会话不会得到维护 下面的代码运行良好 但为什么 Ref here Session put lets test 2 Session save 老问题我是 laravel
  • 为什么 Rust 的 read_to_end 不将文件读入缓冲区?

    代码 根据我的实际问题改编 非常简单 但我无法弄清楚我缺少什么 它将正确写入文件 但它的输出是Buffer 由于某种原因没有从文件中读取任何内容 它是什么 use std io Read Write fn main let mut test
  • 区分“colorbar”中的剪裁值

    我有一个pcolormesh绘图 其中颜色图通过设置进行裁剪vmin和和vmax严格在绘制的值范围内 有没有办法有关联colorbar从底部和顶部分离一块以表示相关颜色超出了颜色图的范围 是的 您需要使用extend both颜色栏的关键字
  • 为什么每次使用 malloc 时都会收到警告?

    如果我使用malloc在我的代码中 int x malloc sizeof int 我收到此警告gcc new c 7 warning implicit declaration of function malloc new c 7 warn
  • jqGrid - 复选框编辑无法编辑所选行

    在我的 jqGrid 中 我有一个也可用于编辑的复选框 即用户可以单击该复选框 并且该复选框的值将在数据库中更新 效果很好 但是 当我单击该复选框并尝试再次单击它时 什么都没发生 该行不会被保存 理论上应该保存复选框未选中的值 但这并没有发
  • Angular 9 库构建失败

    我正在尝试迁移这个库https github com flauc angular2 notifications从 Angular 2 到 Angular 9 最初的错误是关于ModuleWithProviders这已经成为一个通用类型 所以
  • CSV 转换为哈希

    我有一个 csv 第一列是一个标签 后跟逗号分隔值 LabelA 45 56 78 90 LabelB 56 65 43 32 LabelC 56 87 98 45 我希望第一列 LabelA 等 成为散列中的键 数值位于数组中 我可以将文
  • 如何使 python 命令行程序自动完成任意内容而不是解释器

    我知道如何在 python 解释器 在 unix 上 中设置 python 对象的自动完成功能 谷歌显示了许多有关如何执行此操作的解释的点击 不幸的是 有太多的参考资料 很难找到我需要做的事情 这略有不同 我需要知道如何在用 python
  • PyQt5:类型错误:“顶级小部件的基类错误”

    我已经使用 QtDesigner 创建了 ui 文件 并将它们加载到两个单独的窗口中 如下所示 class MainWindow QMainWindow def init self parent None super init Set up
  • 用于加载 PNG 图像的替代库

    我的 java J2SE 应用程序正在从 Web 读取大量 png 图像 其中一些图像使用诸如真彩色图像的透明度颜色 tRNS 部分 之类的功能 而 Sun 的 Oracle 的 PNGImageReader 实现会简单地忽略这些功能 因此
  • Angular 将回调函数作为 @Input 传递给子组件,类似于 AngularJS 方式

    AngularJS 有 参数 您可以在其中将回调传递给指令 例如AngularJS 的回调方式 是否可以将回调作为 Input对于角度组件 如下所示 如果不是 那么与 AngularJS 最接近的是什么 Component selector
  • 如何查看哪个复选框被选中?

    如何在 PHP 中检查是否checkbox是否检查 如果选中该复选框 则将传递该复选框的值 否则 该字段不会在 HTTP post 中传递 if isset POST mycheckbox echo checked
  • 从 .NET 服务打印 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我现在正在开发一个项目 该
  • Maven项目中Tomcat部署问题

    我一直在尝试创建一个简单的基于 Maven Web 的项目 以对 Maven 充满信心 我在 pom xml 中添加了 tomcat7 插件以将其用作服务器 但是当我开始使用以下命令将 war 文件部署到 tomcat 时 tomcat7
  • ORDER BY 子句的 CASE WHEN 语句

    我正在使用 SQL Server 2008 R2 我想要对表中的记录进行基于优先级的排序 所以我在 ORDER BY 子句中使用 CASE WHEN 语句 ORDER BY 子句如下 ORDER BY CASE WHEN TblList P