有个需求要求过滤掉同单号的 未检验数据, 如果已检验数据和未检验数据同时存在,则取已检验数据,如果只有未检验数据,取未检验数据
后来找的一个解决方案 使用ROW_NUMBER() OVER()做过滤
具体如下
( SELECT ROW_NUMBER ( ) OVER ( PARTITION BY ***_id ORDER BY check_status DESC ) num, * FROM ***_***_check_header ) fich
搭配
AND fich.num= 1
成功完成过滤
SQL server使用ROW_NUMBER() OVER()做过滤标签...
select * from OP_Order 7.rows_number()可用于分页
思路:先把所有的产品筛选出来,然后对这些产品进行编号。然后在where子句中进行过滤。
8.注意:在使用over等开窗函数时,over里头的分组及排序的执行晚于“where,group by,order by”的执行。
如下代码:select
ROW_NUMBER() over(partition by customerID order by insDT) as rows,
customerID,totalPrice, DID
from OP_Order where insDT>‘2011-07-22‘
SQL Ser...
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库。
转载请注明此文原创自
CSDN TJVictor的专栏:http://blog.csdn.net/tjvictor/archive/2009/07/08/4331039.aspx
1.ROW_NUMBER()基本用法:
SELECT SalesOrderID, CustomerID, ROW_NUMBER() OVER (ORDER BY SalesOrderID) AS RowNumber FROM Sales.SalesOrderHeader结果集:SalesOrderID CustomerID RowNumber-------...
1.row_number() 就是行号2.rank:类似于row_number,不同之处在于,它会对order by 的字段进行处理,如果这个字段值相同,那么,行号保持不变3.dense_rank:与rank类似,不同之处在于行号是否保留一个位置,rank对保留这个位置,即上面图中,row的值由1直接变为3,因为它的1出现了两次,所以为2保留了一个位置,而dense_rank不会保留2这个位置,即实现的行号2其实是排在了第3位4.ntile函数可以对序号进行分组处理。这就相当于将查询出...
statistics time onselect * from
(
select ProductID, rn = ROW_NUMBER() OVER (ORDER BY ProductID)
from [bigTransactionHistory]
) as t
where t.rn between 15631801 and 15631802这条查询在我的电脑上执行了15S,这还是数据全在内存中的情形!如图1-1 图1-1
一个简单的执行计划执行如此之长有点匪夷所思,毕竟逻辑读才6W多,且无物理读
,而且CPU时间与占用时间...
BEGIN TRAN
CREATE TABLE [dbo].[CarData]([CarID] [int] NULL,[Mileage] [int] NULL,[M_year] [int] NULL,[M_Month] [int] NULL,[M_Day] [int] NULL) ON [PRIMARY]GOINSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 10, 2015, 1, 1)INSERT [dbo].[CarData] ([CarID], [Mileage], [M_year], [M_Month], [M_Day]) VALUES (1, 15, 2015, 1, 2)INSERT [dbo].[CarData] ([CarID], [Mileage], [...
tempdb
GO
--------------------------------------------------------------------------
IF OBJECT_ID(‘Student‘,‘U‘) IS NOT NULL
DROP TABLE Student
GOCREATE TABLE Student
(StuID NVARCHAR(8) PRIMARY KEY,Name NVARCHAR(5)
)
GOINSERT INTO Student(StuID,Name) VALUES(‘20080001‘,‘Lily‘)
INSERT INTO Student(StuID,Name) VALUES(‘20080002‘,‘Lucy‘)
INSERT INTO Student(StuID,Name) VALUES(‘20080003‘,...
@pageSize INT ;
DECLARE @pageIndex INT ;
SET @pageSize = 5
SET @pageIndex =2 ;--第二页,每页显示5条数据
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY CreateDate ASC ) AS ‘rowNumber‘ ,*FROM dbo.Task_Info) AS temp
WHERE rowNumber BETWEEN ( ( ( @pageIndex - 1 ) * @pageSize ) + 1 )AND ( @pageIndex * @pageSize ) 在LINQ环境下使用SQL代码如下Db.Da...
使用row_number分页的时候,可能需要一些条件,比如显示某个id下面的信息来分页等等,这些都需要加条件来判断。select * from (select row_number() over(order by id) as num, * from [sjk] where id=xxx) as t where t.num>=0 and t.num<=20在这个里面明显要查找某个id的信息。但是这个where条件不能放在外面,放在外面一层会查不到数据。本文出自 “music” 博客,请务必保留此出处http://boysmusic.blog.51cto.com/9398683/175...
最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerProfiler把语最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerProfiler把语句抓取...
SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条SELECT Id,[Title],[Content],[Image] FROM ( SELECT ROW_NUMBER() OVER(ORDER BY [Id] DESC) AS ROW_NUM,Id,[Title],[Content],[Image] FROM [NewsInfo] )AS TEMP WHERE TEMP.ROW_NUM BETWEEN 31 AND 40
SQL Server分页语句ROW_NUMBER,读取第4页数据,每页10条标签:本文系统来源:http://www.cnblogs.com/guo2001china/p/5892008.html
SELECT TOP 10* --pageSize =10FROM ( SELECT *, row_number () OVER (ORDER BY a.bsqID ASC) AS number FROM TB_RT_BSQDATA a ) AS tableNumberWHERE
number > 0*10 --pageIndex = 0, pageSize =10
--先把表中的所有数据都按照一个number进行排序, --然后查询number大于pageIndex*pageSize的数据 --例如:第一页 pageIndex=0,则表示查询number大于0*10的数据 --红色部分两个as不能省略,会报错
sql server ...
set @count = 0; set @num = 0; SELECT @count :=count(1) FROM better.MonitorInfo where itemId=d_itemId and configId=d_configId; IF @count<300 THEN SELECT id,cpu,cpu1,cpu2,cpu3,diskRead,diskWrite,memory,networkReceive,networkSend,time,configId,itemId FROM MonitorInfo where itemId=itemId and configId=configId; ELSE SET @num= round(@count/d_count_num,0); select @num; create temporary table tmp...
select * from OP_Order 7.rows_number()可用于分页
思路:先把所有的产品筛选出来,然后对这些产品进行编号。然后在where子句中进行过滤。
8.注意:在使用over等开窗函数时,over里头的分组及排序的执行晚于“where,group by,order by”的执行。
如下代码:select
ROW_NUMBER() over(partition by customerID order by insDT) as rows,
customerID,totalPrice, DID
from OP_Order where insDT>‘2011-07-22‘
以上代码...
with Result as(select SUM(F_DayValue) AS F_Value,F_ZZ_ttBuildID,F_EnergyItemCode from T_EC_EnergyItemDayResult where F_EnergyItemCode like ‘%000‘and F_StartDay>=@ldStartDate and F_StartDay<=@ldEndDateand F_ZZ_ttBuildID IN (select F_BuildID from T_BD_BuildBaseInfo)group by F_ZZ_ttBuildID,F_EnergyItemCode)select a.F_Value,a.F_ZZ_ttBuildID,b.F_BuildName,a.F_EnergyItemCode,ROW_NUMBER() over(p...