sql - 如何在我的 ORDER BY 语法中解决与 CASE 语句相关的这个错误?
问题描述
我正在使用 SQL Server 2014 并且正在查询链接服务器。
我的 T-SQL 查询如下:
USE MyDatabase
SELECT
[EMP_CODE],
[NAME],
[ADDRESS]
FROM [xxx.xxx.xx].[HR].[dbo].[EMPLOYEE]
WHERE [EMP_CODE] IN (
'A0025',
'A0045',
'B0008',
...
...
'A0096' )
ORDER BY
CASE [EMP_CODE]
WHEN 'A0025' THEN 1
WHEN 'A0045' THEN 2
WHEN 'B0008' THEN 3
...
...
WHEN 'A0096' THEN 68
END
我的问题是运行上述 T_SQL 查询时收到以下错误消息:
"Case expressions may only be nested to level 10."
我怎样才能绕过这个错误?
解决方案
我不知道嵌套case
表达式的来源。但另一种配方将使用JOIN
:
SELECT . . .
FROM [xxx.xxx.xx].[HR].[dbo].[EMPLOYEE] e LEFT JOIN
(VALUES ('A0025', 1), ('A0045', 2), ('B0008', 3), . . .)
) v(emp_code, ord)
ON e.emp_code = v.emp_code
ORDER BY COALESCE(v.ord, 1000000)
推荐阅读
- python - 在 ubuntu 18.04 上对 .sh 文件的 python 启动执行进行故障排除
- apache-camel - 在骆驼中暂停文件处理?
- excel - 我可以更改 Excel VBA combobox.list 范围吗?
- smooch - 结合回复和回发按钮
- azure-ad-b2c - 在 Azure B2C 自定义策略中,如何为依赖于验证技术配置文件的验证显示超过 2 条不同的验证消息?
- ios - 使用带有 JSONserialization 的 Structs 在 Swift 中解码嵌套的 JSON 数组和字典
- groovy - 不能在函数内访问 Groovy 变量
- python - 无法解决 Azure Web 服务上的“没有与主机名关联的地址”
- javascript - 将对象添加到对象数组Javascritp
- swift - 如何根据设备大小调整 CAShapeLayer 的位置?