面试SQL ,谁来挑战!!!

一个表的内容:
1 x
2 x
NA y
2 y
NA z
NA z
把他排列成
1 x
NA y
NA z
2 x
2 y
NA z

就是把内容换换就行了;假设有c1,c2,c3,c4,c5,c6六个字段
update table set c2='NAy',c3='NAz',c4='2x',c5='2y',c6='NAz' where c1='1x'

假设表名为T1,字段为Content,下面的查询语句在MS SQL Server 2005上运行后就是你需要的效果 (MS SQL Server 2005以上应该也可以)。

SELECT Content
FROM T1
ORDER BY ROW_NUMBER() OVER(ORDER BY Content) % 2 DESC
    , Content