SQL生成序列浅析

01.sqlserver版本

使用sqlserver将数据复制n条

复制代码
 select
      t.indx,
      t.name,
      tmp.vlue
from (
     values(1,'苹果')
)  as t(indx,  name)
,(
    select
         [number]  as vlue
     from master.dbo.spt_values
     where [type] = 'p'
        and [number] between 1 and 10
) as tmp

spt_values是什么

spt_values是SQL Server新增的一个系统表,表里面都是一些枚举数据。 (因为该表属于系统数据库master下面,所以通常在表名前面添加库名master) **解释:但是通常我们使用的是Type='P'的数据记录,master.dbo.spt_values表的字段值为"P"的对应number字段值是从0-2047。

master.dbo.spt_values使用示例

制作日历

复制代码
SELECT 
  CONVERT(NVARCHAR(10), DATEADD(DAY, number, '2024-01-01'), 120) AS calendar
FROM 
  master..spt_values 
WHERE TYPE = 'P' 
 AND number <= DATEDIFF(DAY, '2024-01-01', '2024-01-31')

02.postgresql版本

使用sqlserver将数据复制n条

复制代码
 select
      t.indx,
      t.name,
      tmp.vlue
from (
     values(1,'苹果')
)  as t(indx,  name)
,(
    select
         vlue
     from  generate_series(1,  10,  1)tmp(vlue)

) as tmp

generate_series(start, stop, step)函数

generate_series是PostgreSQL提供的一个内置的函数,可以用在SQL语句中,生成一个数字序列和日期序列的记录集。函数generate_series(start, stop, step)的参数分别是序列开始值,序列结束值和步长值。

generate_series()日期序列 示例

复制代码
SELECT * FROM generate_series('2022-01-01'::date, '2022-01-05'::date, '1 day'::interval);
相关推荐
bIo7lyA8v几秒前
从 ChangeTracker 到 SQL Batch 的性能诊断与优化
数据库·sql·batch
Yiyi_Coding2 分钟前
Oracle 、 Mysql、Guass 的 sequence
数据库·mysql·oracle
蒸汽求职33 分钟前
低延迟系统优化:针对金融 IT 与高频交易,如何从 CPU 缓存行(Cache Line)对齐展现硬核工程底蕴?
sql·算法·缓存·面试·职场和发展·金融·架构
数智化管理手记9 小时前
精益生产中的TPM管理是什么?一文破解设备零故障的密码
服务器·网络·数据库·低代码·制造·源代码管理·精益工程
翊谦9 小时前
Java Agent开发 Milvus 向量数据库安装
java·数据库·milvus
難釋懷10 小时前
OpenResty实现Redis查询
数据库·redis·openresty
别抢我的锅包肉10 小时前
【MySQL】第四节 - 多表查询、多表关系全解析
数据库·mysql·datagrip
Database_Cool_10 小时前
OpenClaw-Observability:基于 DuckDB 构建 OpenClaw 的全链路可观测体系
数据库·阿里云·ai
刘~浪地球11 小时前
Redis 从入门到精通(五):哈希操作详解
数据库·redis·哈希算法
zzh08111 小时前
MySQL高可用集群笔记
数据库·笔记·mysql