Jul
30
两种写法
①
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
照理说两种写法的效果是一样的,但实际第二种写法的结果是不可预料的,奇怪,很奇怪