我使用的SQLServer 2005 其中有两张表 Users 和 Papers ,其中Paper中有PaperID,PaperName和A_B(代表A,B卷)现在想
实现试卷A,B卷,按照Users表中的字段UserID来随机分配,或者依据UserID来交替分配,生产一张新的表Test(UserID,UserName,PaperName,A_B).
该如何做呢?求大神指导
------解决方案--------------------
- SQL code
CREATE TABLE Users( UserID INT, UserName VARCHAR(100))GOCREATE TABLE Papers( PaperID INT, PaperName VARCHAR(100), A_B VARCHAR(10))GOINSERT INTO UsersSELECT 1,'张三' UNIONSELECT 2,'李三' UNIONSELECT 3,'王三' UNIONSELECT 4,'宋三' INSERT INTO PapersSELECT 1,'数学','A' UNIONSELECT 2,'数学','B' UNIONSELECT 3,'语文','A' UNIONSELECT 4,'语文','B' WITH t AS(SELECT RN=ROW_NUMBER() OVER (ORDER BY userid),UserId,UserNameFROM Users)SELECT UserId,UserName,PaperName,A_BFROM t INNER JOIN Papers AS B ON CASE t.RN%2 WHEN 1 THEN 'A' WHEN 0 THEN 'B' END = B.A_BORDER BY PaperNameUserId UserName PaperName A_B1 张三 数学 A2 李三 数学 B3 王三 数学 A4 宋三 数学 B4 宋三 语文 B3 王三 语文 A2 李三 语文 B1 张三 语文 A