case - 比较具有相同值的行(SQL Server 管理工作室)
问题描述
我正在尝试比较一列中具有相同值的行,此外我还需要使用多个 WHEN-THEN-ELSE 条件。
假设我有:
结果_ID | 规则 |
---|---|
123 | 0 |
123 | 1135 |
111 | 0 |
222 | 1135 |
333 | 1135 |
333 | 2040 |
333 | 3588 |
555 | 1135 |
555 | 1135 |
第一个条件,如果 result_ID=Result_ID 并且 Rule = 0,那么“手动”
第二个条件如果 result_ID=Result_ID 并且 Rule = ONLY 到值 1135,那么“失败”
第三个条件,如果 result_ID=Result_ID 并且 Rule = 1135 或任何其他规则(0 除外),则“通过”
它应该是:
结果_ID | 规则 | 结果 |
---|---|---|
123 | 0 | 手动的 |
123 | 1135 | 手动的 |
111 | 0 | 手动的 |
222 | 1135 | 失败的 |
333 | 1135 | 通过 |
333 | 2040 | 通过 |
333 | 3588 | 通过 |
555 | 1135 | 失败的 |
555 | 1135 | 失败的 |
我有:
SELECT CASE WHEN EXISTS (
SELECT *
FROM Table A2
WHERE A2.Result_ID=A.Result_ID
AND RULE_ID =0
) THEN 'Manual'
WHEN EXISTS (
SELECT *
FROM Table A2
WHERE A2.Result_ID=A.Result_ID
AND RULE_DETAIL_ID =1135
) THEN 'Failed'
ELSE 'Passed' end as ABC
FROM ....
但这不是我得到的正确结果。而且加载数据需要时间,也许我可以以某种方式简化这个查询?
谢谢您的帮助。
解决方案
推荐阅读
- mp3 - 如何将音频 HLS ACC(ADTS) 流转换为不支持的设备的 mp3 流?
- python - 将 JSON 文件内容转换为 Python 列表
- git - Git 专门从一个分支列出存储
- c# - 要么以可以翻译的形式重写查询,要么显式切换到客户端评估....通过插入对“AsEnumerable”的调用
- python - 如何将打印函数()的结果存储到变量中以将其包含在 af 字符串中
- javascript - 有没有办法访问 html 元素上的值或道具更改事件?
- x86 - 标签组装结束时的垃圾
- python - 如何将空间坐标数据输入到 Keras 模型中?
- flutter - 参数类型'Map
' 不能分配给参数类型 'String'.dartargument_type_not_assignable - node.js - 使用 Nodejs 的 AWS LexRuntimeV2 凭证