如上图所示,特殊颜色标注的的行即为需要得到的结果,主要是Value值上周发帖得到的最佳答案如下:
select TimeStamp,value from (
select row_number() over(order by TimeStamp) as row_number, TimeStamp,value from tb
) t
where t.value<>(select value from
(select row_number() over(order by TimeStamp) as row_number, TimeStamp,value from tb) t1
where t1.row_number=t.row_number-1)
上面这条SQL如果是在SQL Server下运行,是可以满足需求的...
但是...
现在需要从实时数据库(Ge Historian 3.5)中取值,虽然实时数据库也支持SQL结构化查询,但是功能上并没有
关系数据库的SQL强大,很多SQL函数都用不了...因此需要一条不应用SQL函数就能得到我所需要的查询结果的SQL语句
对了,好像嵌套表在实时库中也用不了,反正限制听多了,
大侠们看着写了,最好用最平常最平常的SQL,如:
sselect * from XXX where XXX
希望熟悉的大侠帮忙解决了,不胜感激!!
select TimeStamp,value from (
select row_number() over(order by TimeStamp) as row_number, TimeStamp,value from tb
) t
where t.value<>(select value from
(select row_number() over(order by TimeStamp) as row_number, TimeStamp,value from tb) t1
where t1.row_number=t.row_number-1)
上面这条SQL如果是在SQL Server下运行,是可以满足需求的...
但是...
现在需要从实时数据库(Ge Historian 3.5)中取值,虽然实时数据库也支持SQL结构化查询,但是功能上并没有
关系数据库的SQL强大,很多SQL函数都用不了...因此需要一条不应用SQL函数就能得到我所需要的查询结果的SQL语句
对了,好像嵌套表在实时库中也用不了,反正限制听多了,
大侠们看着写了,最好用最平常最平常的SQL,如:
sselect * from XXX where XXX
希望熟悉的大侠帮忙解决了,不胜感激!!
select TimeStamp,value from (
select rownum as rn, TimeStamp,value from (select TimeStamp,value from tb order by TimeStamp)
) t
where t.value<>(select value from
(select rownum as rn, TimeStamp,value from (select TimeStamp,value from tb order by TimeStamp)) t1
where t1.rn=t.rn-1)
消息 1033,级别 15,状态 1,第 41 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。另外:
select TimeStamp,value from (
select rownum as rn, TimeStamp,value from (select TimeStamp,value from tb order by TimeStamp)
)这种SQL实时数据库查询引擎识别不了,不能嵌套表
报错:Query error,表不存在
from dbo.test) a
where [value] <>(
select [value] from (select [value],ROW_NUMBER() over(order by [Date]) rid
from test) b where b.rid = a.rid-1)
1 Simulation1 2011-5-10 9:35:50 1
2 Simulation1 2011-5-10 9:35:51 1 结果
3 Simulation1 2011-5-10 9:35:52 0 结果
4 Simulation1 2011-5-10 9:35:53 0
5 Simulation1 2011-5-10 9:35:54 0
6 Simulation1 2011-5-10 9:35:55 0 结果
7 Simulation1 2011-5-10 9:35:56 1 结果
8 Simulation1 2011-5-10 9:35:57 1
9 Simulation1 2011-5-10 9:35:58 1 结果
10 Simulation1 2011-5-10 9:35:59 0 结果
11 Simulation2 2011-5-10 9:36:00 0 结果
12 Simulation2 2011-5-10 9:36:01 1 结果
13 Simulation2 2011-5-10 9:36:02 1
14 Simulation2 2011-5-10 9:36:03 1
15 Simulation2 2011-5-10 9:36:04 1 结果
16 Simulation2 2011-5-10 9:36:05 0 结果
17 Simulation2 2011-5-10 9:36:06 1 结果
18 Simulation2 2011-5-10 9:36:07 1 结果
19 Simulation2 2011-5-10 9:36:08 0 结果
20 Simulation2 2011-5-10 9:36:09 1 结果
这种取值也行
这样说吧,我的目的就是取中控系统中设备实时数据的开关量,就是设备的开机时间、关机时间变化点,中控系统取的值就是1或0,还有就是取值的时间点,如果取值频率是1秒的话就是每秒都会有一个实时数据产生,如果设备开着,就会每秒存一个1如果设备关着,就会每秒存一个0..........
但是实时库中的SQL引擎不像SQL Server中的那么强大,很多功能用不了的,比如,Row_Number()函数