数据库字段分组问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 02:28:09
我用sql-server2000,现在有一张表
-----------------------------------
id name grade
1 A 24
2 B 32
3 C 12
4 D 31
.. .. ..
依次类推,有很多条记录。我现在要让他们两个一组的来进行PK,也就是将两个人分成一个组,(随机不随机都可以)。
现在我需要加字段吗,还是把他们弄到另外一个表里呢。
请高手们指点,在线等!
1楼的朋友,先谢谢你!
因为业务不是很复杂,所以我只想用一张表来完成,可以在这些表上再加字段,你下边写的我不是太明白。你可以用文字描述一下了。让我知道用什么思路来完成了。越简单的方法越好,不用考虑效率问题。因为我这个库里面记录不会很多,最多也就几百条。

CREATE TABLE [#Tmp1] (
[NewID] [int] IDENTITY (1, 1) NOT NULL ,
[ID] [int] NULL ,
[Name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Grade] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
) ON [PRIMARY]

CREATE TABLE [#Tmp2] (
[NewID] [int] IDENTITY (1, 1) NOT NULL ,
[ID] [int] NULL ,
[Name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Grade] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
) ON [PRIMARY]

DECLARE @Int AS INT
DECLARE @SQL AS VarChar(8000)
SELECT @Int = COUNT(*) FROM 表
SET @Int = @Int / 2
SET @SQL = 'INSERT INTO #Tmp1 (ID, Name, Grade) SELECT TOP ' + CAST(@Int AS VarChar) + ' ID, Name, Grade FROM 表 ORDER BY ID'
EXEC (@SQL)
SET @SQL = 'INSERT INTO #Tmp2 (ID, Name, Grade) SELECT ID, Name, Grade FROM 表 WHERE ID NOT IN (SELECT ID FROM #Tmp1) ORDER BY ID'
EXEC (@SQL)

SELECT @Tmp1.[NewID], #Tmp1.[ID], #Tmp1.[Name], #Tmp