如何将多个案例语句合并为一个
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
。
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
。