两种写法

SELECT ID,NEWID() AS N INTO #TMP FROM AAA
SELECT *  FROM AAA A WHERE ID IN
(SELECT TOP 2 B.ID FROM AAA B INNER JOIN
#TMP C
ON B.ID=C.ID
WHERE A.AA1=B.AA1 ORDER BY N) ORDER BY AA1
DROP TABLE #TMP


SELECT *  FROM AAA A WHERE ID IN
(SELECT TOP 2 B.ID FROM AAA B INNER JOIN
(SELECT ID,NEWID() AS N FROM AAA) C
ON B.ID=C.ID
WHERE A.AA1=B.AA1 ORDER BY N) ORDER BY AA1

照理说两种写法的效果是一样的,但实际第二种写法的结果是不可预料的,奇怪,很奇怪

发表评论

*