Generate data from 1 to specific value(生成从 1 到特定值的数据)
本文介绍了生成从 1 到特定值的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要生成这样的结果假设我有这些记录
I am going to generate a result like this suppose I have this records
Salah 3
John 2
我会期待这个
Salah
Salah
Salah
John
John
推荐答案
一种方法,如果您总是对 n 使用 small 值,则使用 rCTE:
One method, if you always have a small value for n is to use a rCTE:
WITH rCTE AS(
SELECT [Name],
N,
1 AS I
FROM dbo.YourTable
UNION ALL
SELECT [Name],
N,
I + 1
FROM rCTE
WHERE I < N)
SELECT [Name]
FROM rCTe
ORDER BY [Name] DESC;
如果您有更大的数字,请使用性能更好的 Tally.我在这里使用内联:
If you have much larger numbers, use a more performamt Tally. I use an inline here:
WITH N AS(
SELECT N
FROM (VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL))N(N)),
Tally AS(
SELECT --TOP (SELECT MAX(N) FROM dbo.YourTable) --Limits the number of rows, which could also provide a performance benefit if you only sometimes have large numbers
ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS I
FROM N N1, N N2, N N3) --1000 rows, add more cross joins for more rows
SELECT [Name]
FROM dbo.YourTable YT
JOIN Tally T ON YT.N >= T.I
ORDER BY YT.[Name] DESC;
db<>fiddle
这篇关于生成从 1 到特定值的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:生成从 1 到特定值的数据
基础教程推荐
猜你喜欢
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- 带有WHERE子句的LAG()函数 2022-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
- 带更新的 sqlite CTE 2022-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
