[英]Generate Range of Number between two Columns in Sql Server and C#
我需要將 c# 中兩個文本框的值插入到 sql 服務器 table1 然后生成從 table1 到 table2 的 2 列之間的數字范圍
示例表1
姓名 | 起始編號 | 結束號 |
---|---|---|
一個 | 19001 | 19050 |
乙 | 15051 | 15100 |
table2 必須像這樣
姓名 | 姓名編號 |
---|---|
一個 | 19001 |
一個 | 19002 |
一個 | 19003 |
一個 | ...... |
一個 | ...... |
一個 | 19050 |
乙 | 15051 |
乙 | 15052 |
乙 | 15053 |
乙 | ...... |
乙 | ...... |
乙 | 15100 |
startNum 和 endNum 值是從 C# winforms 中的兩個文本框插入的
感謝你的幫助
使用CTE
遞歸,您可以生成所需的 output。
;WITH A AS (
SELECT name,startNum X,endNum Y
FROM tb
UNION ALL
SELECT name,X + 1, Y
FROM A
WHERE X < Y
)
SELECT
name,X AS 'Name No.'
FROM A
ORDER BY name
db<>fiddle中的演示
您可以使用 c# 中的遞歸函數
public class Test
{
public string Name { get; set; }
public int StartNum { get; set; }
}
List<Test> testList = new List<Test>();
public void JenerateNumber(string name,int startNum,int endNum)
{
if(startNum <= endNum)
{
testList.Add(new Test() { Name = name, StartNum = startNum });
startNum++;
JenerateNumber(name, startNum, endNum);
}
}
JenerateNumber("A", 15, 25);
Console.WriteLine(string.Join(", ", testList.Select(a => a.StartNum)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.