数字辅助表是一个连续整数的数列,通常用来实现多种不同的查询任务。大多分两类:足够大物理数字表和表函数,前者可以称为静态的,后者可以称为动态且按需生产。
物理数字表
物理数字表通常存在一个物理表,表记录相对足够大,相关的T-SQL代码如下:
IF OBJECT_ID(N'dbo.Nums', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.Nums;
END
GO
CREATE TABLE dbo.Nums
(
Num INT NOT NULL,
实现以上要求,我们可以用以下几种方式,但是效率却相差很远。 首先我们在Order表中,创建一个索引: CREATE UNIQUE INDEX idx_eid_odD_oidD ON Orders(EmployeeID,OrderDate DESC,OrderID DESC) 多个OrderId是为了在OrderData相同的情况下,按订单号倒序,是个辅助属性。 方法1: 代码如下: SELECT EmployeeID,OrderID FROM Orders AS O1 WHERE Or