You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SELECT语句中用SQL CASE选择active状态的drive数据?

SQL CASE 语句完整写法指导

完整可运行的SQL代码

SELECT 
    t_stamp AS DateTime,
    CASE 
        WHEN DriveAActive THEN DriveA_TorqueActual
        ELSE DriveB_TorqueActual
    END AS Actual_Torque  -- 给计算列指定别名,让结果列名更清晰
FROM your_table_name;  -- 替换为你的实际表名

关键写法说明

  • 你的代码片段缺少CASE语句的闭合关键字END,这是SQL CASE表达式的必填部分,用来标记条件判断逻辑的结束。
  • 给CASE表达式的结果列加别名(比如示例中的Actual_Torque)是良好习惯,既方便后续引用该列,也让查询结果可读性更强。
  • 当前逻辑完全匹配你的需求:当DriveAActive处于active状态(值为真)时,返回Drive A的扭矩数据;否则直接返回Drive B的扭矩数据。

特殊场景扩展处理

如果存在DriveA和DriveB同时active或两者都不active的情况,可以按需调整逻辑:

SELECT 
    t_stamp AS DateTime,
    CASE 
        WHEN DriveAActive THEN DriveA_TorqueActual
        WHEN DriveBActive THEN DriveB_TorqueActual
        ELSE NULL  -- 也可以指定默认值,比如0或'无有效数据'
    END AS Actual_Torque
FROM your_table_name;

基础语法参考

SQL CASE表达式分为两种常用形式:

  • 搜索式CASE(你使用的类型):CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 默认结果 END,支持复杂的多条件判断;
  • 简单式CASE:CASE 目标列 WHEN 匹配值1 THEN 结果1 WHEN 匹配值2 THEN 结果2 ELSE 默认结果 END,适合针对单一列的等值判断。

所有主流SQL数据库(MySQL、PostgreSQL、SQL Server等)均支持标准CASE表达式语法。

内容的提问来源于stack exchange,提问作者Chris Brunner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:37:36