如何解决IIF或在窗口功能时的大小写
我在表中有一些时间戳,我想创建一个虚拟变量(0或1),以在对时间戳进行排序后测试上面的行是否等于当前行。我需要在不同的分区中执行此操作。在SQL Server中是否有可以执行此操作的窗口函数?
所以我知道我的分区按列和顺序按列。据我对窗口函数的了解,我可能需要使用等级函数,但是有一种方法可以使用IIF
和LEAD
或LAG
用嵌套函数编写此函数,以检查之间的某些条件分区中的行?
解决方法
SQL表表示无序集。如果您的订购栏与时间戳分开,则可以使用:
select t.*,(case when lag(timestamp) over (partition by <partition col> order by <order col>) = timestamp
then 1 else 0
end) as flag
from t;
,
SQL是一种设置语言,因此没有上层或下层的内容,但是它们由于受欢迎的需求而创建了类似的东西,可移植性有限。您可以编写一个过程来处理记住前值的有序行,并用第一行的内容填充该内存。仍然无法访问下一行!返回电子表格?或者将当前行和上一行的信息保存到下一行,然后将其输出到下一行,但是最后一行呢?即使在电子表格中,您也有顶行和底行!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。