簡體   English   中英

在 Sql 服務器和 C# 中生成兩列之間的數字范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM