首页 > 解决方案 > Mysql查询到存储过程

问题描述

我可以访问具有以下值的数据表(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。

谢谢!

结果

标签: mysqlstored-proceduresviewmysql-8.0

解决方案


创建过程 XXXXXName @Flammtemperatur1 DECIMAL (3,2), @Flammtemperatur2 DECIMAL (3,2) , @Rauchgasventilator DECIMAL (3,2) ,@Rezirkulation DECIMAL (3,2) AS SELECT UTCTIME,当 Flammtemperatur1 为 NULL 然后 @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 然后@vorheriger_wert_Rezirkulation else @vorheriger_wert_Rezirkulation := Rezirkulation 结束为 FRezirkulation_ FROM pivot_test order by utctime asc


推荐阅读