SQL将数据排序为模式

时间:2010-02-14 23:14:02

标签: sql sql-server sorting

不确定这是否可行,但可能有创意方法......

在SQL Server 2005中给出这些数据:

AAA
AAA
BBB
BBB
CCC
CCC
DDD
DDD

如何返回以这样的模式排序的结果集:

AAA
BBB
CCC
DDD
AAA
BBB
CCC
DDD

3 个答案:

答案 0 :(得分:5)

如果您的列名为“col”,并且您的表名为“table”,我会尝试这样的事情:

WITH Indexes AS (
    SELECT 
    ROW_NUMBER() OVER (PARTITION BY col ORDER BY col) as __row,
    col
    FROM table)
SELECT col
FROM Indexes
ORDER BY __row, col;

答案 1 :(得分:0)

不知道它是否有效,但在Oracle中我会尝试创建一个视图,在视图的查询中使用ROWNUM。

然后查询视图并排序:

  • rownum modulo 2
  • 字符串

我手头没有我的数据库来测试这个,但是这个提示可能会给你一些想法。

答案 2 :(得分:0)

Mysql,假设你有表T(一个varchar);使用您提供的数据:

select @t:=a from T order by @t <> a;

它有效: - )