如何使用Coalesce函数在MSSQL中获取当前行上一行的特定列值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计753个文字,预计阅读时间需要4分钟。
介绍MSSQL中获取当前行上一行某列值的函数 + CoalesceSQL上一行减一行的写法 + 记录一个小知识点,在SQLGrid中,在当前行显示上一行某列值的函数 * Coalesce * 的使用。* Coalesce * 用于返回列表中的第一个非null值。
显示上一行是有啥子用?记录一个小知识点,在SQLGrid中,在当前行显示上一行某列值的函数** Coalesce **的使用。
经常有人百度SQL上一行减下一行的写法,但是没几个文章是用最简单直接的方法来使用的,一堆union、零时表啊啥子的,SQL有很好使的自带函数来搞定这个,来看看吧!
比如你有下面的一串数据
此时的SQL可能是这样的
SELECT CollectTime,Value FROM DinData
现在你有一个分析场景,需要计算每次读数的间隔值,这个时候你要是能形成下面的Grid数据,那计算这个值就是个减法了。
Coalesce 函数就可以干这个事!
下面的这个SQL怎么写呢?Coalesce 格式是这样的
Coalesce(lag(Value) over(ORDER BY,CollectTime),Value)
最后的SQL:总结就是:做下排序,定下上下行怎么取的顺序,设置下要展示的是上下行中的那个字段
SELECT CollectTime,Value,Coalesce(lag(Value) over(ORDER BY,CollectTime),Value) AS LastValue FROM DinData
此时就可以计算 差值啊之类的了
本文共计753个文字,预计阅读时间需要4分钟。
介绍MSSQL中获取当前行上一行某列值的函数 + CoalesceSQL上一行减一行的写法 + 记录一个小知识点,在SQLGrid中,在当前行显示上一行某列值的函数 * Coalesce * 的使用。* Coalesce * 用于返回列表中的第一个非null值。
显示上一行是有啥子用?记录一个小知识点,在SQLGrid中,在当前行显示上一行某列值的函数** Coalesce **的使用。
经常有人百度SQL上一行减下一行的写法,但是没几个文章是用最简单直接的方法来使用的,一堆union、零时表啊啥子的,SQL有很好使的自带函数来搞定这个,来看看吧!
比如你有下面的一串数据
此时的SQL可能是这样的
SELECT CollectTime,Value FROM DinData
现在你有一个分析场景,需要计算每次读数的间隔值,这个时候你要是能形成下面的Grid数据,那计算这个值就是个减法了。
Coalesce 函数就可以干这个事!
下面的这个SQL怎么写呢?Coalesce 格式是这样的
Coalesce(lag(Value) over(ORDER BY,CollectTime),Value)
最后的SQL:总结就是:做下排序,定下上下行怎么取的顺序,设置下要展示的是上下行中的那个字段
SELECT CollectTime,Value,Coalesce(lag(Value) over(ORDER BY,CollectTime),Value) AS LastValue FROM DinData
此时就可以计算 差值啊之类的了

