全选并给出随机输出(随机排序输出)

时间:2011-05-10 05:33:08

标签: sql sql-server-2008 sql-order-by

我有一张类似这样的表

ID Name City 
-------------
0  asd  sda
1  hrs  gsh
2  ghd  0
3  hsa  0
.
.

我怎么能以随机顺序返回city!='0'然后以随机顺序返回city ='0'?

2 个答案:

答案 0 :(得分:1)

对于SQL Server(RAND为SQL Server中的所有行提供相同的值)

ORDER BY
    CASE WHEN City <> '0' THEN 1 ELSE 2 END,
    NEWID()

答案 1 :(得分:1)

假设您的DBMS支持RAND函数,该函数为结果集中的每一行返回不同的随机数:

SELECT ID, Name, City
  FROM SomethingLikeThis
 ORDER BY CASE WHEN City = 0 THEN 1 ELSE 0 END, RAND();