【发布时间】:2021-04-29 11:32:37
【问题描述】:
我可以访问具有以下值的数据表 (mysql 8) 的视图:
现在我尝试编写一个mysql查询来用最后一个值填充Null值,因为我们的可视化工具不能使用空值并且图表中的线条会消失。
SELECT UTCTIME,
case when Flammtemperatur1 is NULL then
@vorheriger_wert_Flammtemperatur1
else
@vorheriger_wert_Flammtemperatur1 := Flammtemperatur1
end as Flammtemperatur_1,
case when Flammtemperatur2 is NULL then
@vorheriger_wert_Flammtemperatur2
else
@vorheriger_wert_Flammtemperatur2 := Flammtemperatur2
end as Flammtemperatur_2,
case when Rauchgasventilator is NULL then
@vorheriger_wert_Rauchgasventilator
else
@vorheriger_wert_Rauchgasventilator := Rauchgasventilator
end as Rauchgasventilator_,
case when Rezirkulation is NULL then
@vorheriger_wert_Rezirkulation
else
@vorheriger_wert_Rezirkulation := Rezirkulation
end as FRezirkulation_
FROM pivot_test
order by utctime asc
这很好,但我需要将其保存在视图或存储过程中,以便我们的工具可以访问它。由于会话变量,无法查看。 有人可以帮我为我的问题创建一个存储过程吗?我以前从未写过SP。
谢谢!
【问题讨论】:
-
在查询开头添加
CREATE PROCEDURE procedure_name ()- 仅此而已。不要忘记括号后的空格或换行符,替换 proc。需要一个的名字。然后直接执行CALL procedure_name;。 -
您将问题标记为 MySQL 8+。如果是这样,我建议您避免使用 UDV,并在 CTE 中应用窗口函数。
-
非常感谢 - 它有效。我使用工作台和新程序,工作台包括开始和结束。如果我复制 begin 和 end 中间的文本,会出现一个 synthax 错误。但没有它的工作。 :-)
标签: mysql stored-procedures view mysql-8.0