不确定这是否可行,但可能有创意方法......
在SQL Server 2005中给出这些数据:
AAA
AAA
BBB
BBB
CCC
CCC
DDD
DDD
如何返回以这样的模式排序的结果集:
AAA
BBB
CCC
DDD
AAA
BBB
CCC
DDD
答案 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。
然后查询视图并排序:
我手头没有我的数据库来测试这个,但是这个提示可能会给你一些想法。
答案 2 :(得分:0)
Mysql,假设你有表T(一个varchar);使用您提供的数据:
select @t:=a from T order by @t <> a;
它有效: - )