动态ASP.Net表的TSQL分组和排序

动态ASP.Net表的TSQL分组和排序,asp.net,sql,tsql,Asp.net,Sql,Tsql,我希望有人能为我指明正确的方向 基本上,我正在编写一个asp.net web控件,以便根据存储在数据库中的字段数据动态显示一组数据 我希望控件从数据库中的一组数据创建一个动态asp表,但是我无法处理将数据排序到列表中所需的查询,如果这有意义的话,我可以从列表中创建一个htmltable 我的数据如下所示,其中我有一个字段名、相应控件的呈现顺序以及控件在asp表中占用的列数: Id |字段名|列跨度|顺序。。。 --------------------- 1 |用户名| 1 | 1 2 |名字|

我希望有人能为我指明正确的方向

基本上,我正在编写一个asp.net web控件,以便根据存储在数据库中的字段数据动态显示一组数据

我希望控件从数据库中的一组数据创建一个动态asp表,但是我无法处理将数据排序到列表中所需的查询,如果这有意义的话,我可以从列表中创建一个htmltable

我的数据如下所示,其中我有一个字段名、相应控件的呈现顺序以及控件在asp表中占用的列数:

Id |字段名|列跨度|顺序。。。 --------------------- 1 |用户名| 1 | 1 2 |名字| 1 | 3 3 |姓| 1 | 4 4 |电子邮件地址| 2 | 2 5 | DOB | 1 | 5 6 |注释| 2 | 7 7 |密码| 1 | 6 8 |用户ID | 1 | 0 我尝试了几次创建一个存储过程,该存储过程接受一个整数,该整数表示表将拥有的列数,但没有实际的进展。如果输入参数为2列,我希望查询返回如下内容—其中字段分组为逻辑行

行|字段名|顺序 ------------------ 1 |用户ID | 0 1 |用户名| 1 2 |电子邮件地址| 2 3 |名字| 3 3 |姓| 4 4 | DOB | 5 4 |密码| 6 5 |注释| 7 如果这些胡言乱语对任何人都有意义,我将感谢任何指导

干杯 kmoo01但不适用于3,因为它不够智能,无法正确处理其余部分

-- SO2992861
DECLARE @width AS int = 2
DECLARE @t AS TABLE (Id int, FieldName varchar(15), ColumnSpan int, [Order] int)
INSERT INTO @t
VALUES (1, 'UserName', 1, 1)
 ,(2, 'FirstName', 1, 3)
 ,(3, 'LastName', 1, 4)
 ,(4, 'Email Address', 2, 2)
 ,(5, 'DOB', 1, 5)
 ,(6, 'Notes', 2, 7)
 ,(7, 'Password', 1, 6)
 ,(8, 'UserID', 1, 0)

SELECT Row, FieldName, [Order]
FROM(
    SELECT l.FieldName
        ,l.ColumnSpan
        ,l.[Order]
        ,SUM(r.ColumnSpan) AS RunningTotal
        ,SUM(r.ColumnSpan) / @width + CASE WHEN SUM(r.ColumnSpan) % @width <> 0 THEN 1 ELSE 0 END AS Row
    FROM @t AS l
    LEFT JOIN @t AS r
        ON r.[Order] <= l.[Order]
    GROUP BY l.FieldName, l.ColumnSpan, l.[Order]
) AS X
ORDER BY [Order]

为什么需要在SQL中对字段进行排序?在代码中重新排序要容易得多,我想。哇,太快了!我想没有什么真正的原因,我只是觉得在一场狂欢中它会更整洁,因为它看起来像是一个团队。谢谢凯德,我没想到会有一个完全编码的答案你是一个传奇!!我看看能不能把你给我的东西扩大一下,再次谢谢