sql怎么依照某一字段分配有关问题
sql如何依照某一字段分配问题
我使用的SQLServer 2005 其中有两张表 Users 和 Papers ,其中Paper中有PaperID,PaperName和A_B(代表A,B卷)现在想
实现试卷A,B卷,按照Users表中的字段UserID来随机分配,或者依据UserID来交替分配,生产一张新的表Test(UserID,UserName,PaperName,A_B).
该如何做呢?求大神指导
------解决方案--------------------
我使用的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) ) GO CREATE TABLE Papers ( PaperID INT, PaperName VARCHAR(100), A_B VARCHAR(10) ) GO INSERT INTO Users SELECT 1,'张三' UNION SELECT 2,'李三' UNION SELECT 3,'王三' UNION SELECT 4,'宋三' INSERT INTO Papers SELECT 1,'数学','A' UNION SELECT 2,'数学','B' UNION SELECT 3,'语文','A' UNION SELECT 4,'语文','B' WITH t AS (SELECT RN=ROW_NUMBER() OVER (ORDER BY userid),UserId,UserName FROM Users) SELECT UserId,UserName,PaperName,A_B FROM t INNER JOIN Papers AS B ON CASE t.RN%2 WHEN 1 THEN 'A' WHEN 0 THEN 'B' END = B.A_B ORDER BY PaperName UserId UserName PaperName A_B 1 张三 数学 A 2 李三 数学 B 3 王三 数学 A 4 宋三 数学 B 4 宋三 语文 B 3 王三 语文 A 2 李三 语文 B 1 张三 语文 A