数字辅助表是一个连续整数的数列,通常用来实现多种不同的查询任务.大多分两类:足够大物理数字表和表函数,前者可以称为静态的,后者可以称为动态且按需生产. 物理数字表 物理数字表通常存在一个物理表,表记录相对足够大,相关的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, CON…
</pre><pre name="code" class="sql">--生成一个"序列" 或者说生成一个"虚拟数字辅助表"是扩展数据库集合操作的重要途径.其主要创建途径一般是通过笛卡尔积法.系统表法(实质一般也是笛卡尔积法).创建自定义函数法等方式. --笛卡尔积法,先构建一个包含10行记录的辅助表,选择10行记录主要是为了方便交叉连接时按照10进制扩展行数 WITH t1 AS ( AS RN UN…
数字辅助表: , ;WITH Digital_Rangs(Digital) AS ( SELECT @start_digital UNION ALL FROM [Digital_Rangs] WHERE [Digital] < @end_digital ) ); Source Code 时间辅助表: DECLARE @start_date DATE = '2019-05-01', @end_date DATE = '2019-05-20' ;WITH [Date_Rangs]([Date]) A…