如何将多个案例语句合并为一个

How to combine multiple case statements in one

select row_id, pointname,
       CASE when pointname like '%Output%'  
            then (select value)  
       END AS Output,  
       CASE when pointname like '%Over%'     
            then (select value)    
       END AS Over,    
       CASE when pointname like '%Schedule%'  
            then (select value)  
      END AS Schedule  
FROM Table1 JOIN
     TABLE2
     ON "Join Condition"    
WHERE (pointname LIKE '%Output%' AND 'Output' IS NOT NULL) OR  
      (pointname LIKE '%Over%' AND 'Over' IS NOT NULL) OR  
      (pointname LIKE '%Schedule%' AND 'Schedule' IS NOT NULL)   

============================================= =========================
使用 Case 语句,我需要显示一些列,包括基于特定条件的列别名。有没有更好的方法来实现这一目标? 另一个问题是 - 我可以将 IS NOT NULL 函数组合起来用于我希望检查的不同列值吗?

我的第一个 post 在这里,如果我需要澄清任何事情,请告诉我。 谢谢!

预期输出-

Row_id    pointname     Output    Over   Schedule  
123456    Over           NULL     10       NULL  
123457    Output         4.3222   NULL     NULL   
123458    Schedule       NULL     NULL     6.3333   

只是,我有 23 个这样的列,因此在我的查询中搜索优化 case 语句

由于您需要在结果中包含如此多的列,因此必须为每一列使用 1 个 CASE 语句。
WHERE 部分可以简化为:

WHERE pointname LIKE '%Output%' OR  
      pointname LIKE '%Over%' OR  
      pointname LIKE '%Schedule%' 

此条件保证 至少 1 将是 NOT NULL,因此无需检查 IS NOT NULL