Sql server ORDER BY NEWID()和使用MS SQL的UNION

Sql server ORDER BY NEWID()和使用MS SQL的UNION,sql-server,union-all,newid,Sql Server,Union All,Newid,我正试图在MS.SQL上执行以下SQL查询, 目标是从两个查询中选择随机记录并将它们合并在一起,但它会按NEWID()的顺序生成错误 当主题id=1时,选择2个随机问题 联合 当主题id=2时,选择3个随机问题 (SELECT TOP 2 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS FROM dbo.questions WHERE (SUBJECT_ID= 1) ORDER BY NEWID() ) UNION ALL

我正试图在MS.SQL上执行以下SQL查询, 目标是从两个查询中选择随机记录并将它们合并在一起,但它会按NEWID()的顺序生成错误

当主题id=1时,选择2个随机问题

联合

当主题id=2时,选择3个随机问题

(SELECT TOP 2 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS 
FROM         dbo.questions WHERE     (SUBJECT_ID= 1) ORDER BY NEWID() ) 
UNION ALL    
(SELECT TOP 3 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS FROM 
dbo.questions WHERE     (SUBJECT_ID= 2) ORDER BY NEWID() )
试试这个

SELECT * FROM
(
    SELECT TOP 2 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS 
    FROM dbo.questions 
    WHERE SUBJECT_ID= 1 
    ORDER BY NEWID()
) A
UNION ALL
SELECT * FROM    
(
    SELECT TOP 3 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS 
    FROM dbo.questions 
    WHERE SUBJECT_ID= 2
    ORDER BY NEWID()
) B
试试这个

SELECT * FROM
(
    SELECT TOP 2 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS 
    FROM dbo.questions 
    WHERE SUBJECT_ID= 1 
    ORDER BY NEWID()
) A
UNION ALL
SELECT * FROM    
(
    SELECT TOP 3 REC_ID, REF_ID, SUBJECT_ID, QUESTIONS, ANSWERS 
    FROM dbo.questions 
    WHERE SUBJECT_ID= 2
    ORDER BY NEWID()
) B
可能的重复可能的重复