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);
相关推荐
随风飘的云6 小时前
MySQL的慢查询优化解决思路
数据库
IvorySQL10 小时前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师11 小时前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸17714 小时前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库
神秘的猪头15 小时前
🚀 React 开发者进阶:RAG 核心——手把手带你玩转 Milvus 向量数据库
数据库·后端·llm
IvorySQL1 天前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
IvorySQL2 天前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
数据组小组2 天前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替