DECLARE @i AS BIGINT DECLARE @Name AS CHAR(10) DECLARE @Number AS CHAR(10) DECLARE @OldName AS CHAR(10) DECLARE @OldNumber AS CHAR(10)SET @i = 0 SET @Name = '' SET @Number = '' SET @OldName = '' SET @OldNumber = ''DECLARE authors_cursor CURSOR FOR SELECT * FROM tbOPEN authors_cursor-- Perform the first fetch. FETCH NEXT FROM authors_cursor INTO @Name, @NumberCREATE TABLE #t(A CHAR(10), B CHAR(10), C CHAR(10), D CHAR(10))WHILE @@FETCH_STATUS = 0 BEGIN SET @i = @i + 1 IF @i % 2 = 0 BEGIN INSERT INTO #t VALUES (@OldName, @OldNumber, @Name, @Number) END SET @OldName = @Name SET @OldNumber = @Number FETCH NEXT FROM authors_cursor INTO @Name, @Number ENDCLOSE authors_cursor DEALLOCATE authors_cursorSELECT * FROM #tDROP TABLE #t
学号 32 学号 32 数学 70
数学 70 变成 学号 33 数学 70
学好 33
数学 70
就是把一个表改一下
每个成绩就是对应上面学号的成绩
DECLARE @Name AS CHAR(10)
DECLARE @Number AS CHAR(10)
DECLARE @OldName AS CHAR(10)
DECLARE @OldNumber AS CHAR(10)SET @i = 0
SET @Name = ''
SET @Number = ''
SET @OldName = ''
SET @OldNumber = ''DECLARE authors_cursor CURSOR FOR
SELECT * FROM tbOPEN authors_cursor-- Perform the first fetch.
FETCH NEXT FROM authors_cursor
INTO @Name, @NumberCREATE TABLE #t(A CHAR(10), B CHAR(10), C CHAR(10), D CHAR(10))WHILE @@FETCH_STATUS = 0
BEGIN
SET @i = @i + 1
IF @i % 2 = 0
BEGIN
INSERT INTO #t VALUES (@OldName, @OldNumber, @Name, @Number)
END
SET @OldName = @Name
SET @OldNumber = @Number
FETCH NEXT FROM authors_cursor
INTO @Name, @Number
ENDCLOSE authors_cursor
DEALLOCATE authors_cursorSELECT * FROM #tDROP TABLE #t
你可以建为学号 数学 语文 ……
32 70 60 ……
33 70 60 ……
34 70 20 ……
我不明白你为什么要如此建表,你可以学号 数学 语文
32 70 ……
33 70 ……