, , , , - .
Lieven ( , ) , . .
data1 NULL NULL
NULL 123 2011-05-24 19:42:29.577
NULL 124 2011-05-24 19:42:29.577
data2 NULL NULL
NULL 323 2011-05-24 19:42:29.577
NULL 333 2011-05-24 19:42:29.577
NULL 444 2011-05-24 19:42:29.577
NULL 673 2011-05-24 19:42:29.577
- , 0. .
INSERT INTO @Table VALUES ('data2', NULL, getdate())
. -.
data1 NULL NULL
NULL 123 2011-05-24 19:53:36.437
NULL 124 2011-05-24 19:53:36.437
data2 NULL NULL
data2 NULL 2011-05-24 19:53:36.440
NULL 323 2011-05-24 19:53:36.440
NULL 333 2011-05-24 19:53:36.440
NULL 444 2011-05-24 19:53:36.440
Roux ROLLUP , , SQL Server. , .
data1 NULL NULL
data1 NULL NULL
data1 NULL NULL
data1 123 2011-05-24 20:16:26.693
data1 124 2011-05-24 20:16:26.693
data2 NULL NULL
data2 NULL NULL
data2 NULL NULL
data2 323 2011-05-24 20:16:26.693
data2 333 2011-05-24 20:16:26.693
data2 444 2011-05-24 20:16:26.693
data2 673 2011-05-24 20:16:26.693
PITIş ROWNUM Oracle ( , , , ), SQL Server ROW_NUMBER() OVER , .
SELECT
ROW_NUMBER() OVER(ORDER BY [name]) AS [rown]
, name
, ''
, ''
FROM @Table
GROUP BY name
UNION ALL
SELECT ROW_NUMBER() OVER(ORDER BY [name]) + 1 AS [rown] , name, size, date
FROM @Table
data1 NULL NULL
data1 NULL NULL
data1 NULL NULL
data1 123 2011-05-24 20:16:26.693
data1 124 2011-05-24 20:16:26.693
data2 NULL NULL
data2 NULL NULL
data2 NULL NULL
data2 323 2011-05-24 20:16:26.693
data2 333 2011-05-24 20:16:26.693
data2 444 2011-05-24 20:16:26.693
data2 673 2011-05-24 20:16:26.693
, - , 1 0 , , . , , , .
, , . ... , , , , "", "".
, . .