包含

时间:2015-09-14 13:20:14

标签: sql-server sorting

我有两张桌子。 如何订购此表格示例:

A B
A D
A C
A A
B C
B B
B D
C D
C B
C D

到此表(双重排序结果):

A A
A B
A C
A D
B B
B C
B D
C C
C B
C D 

2 个答案:

答案 0 :(得分:2)

我试过这个,可能有用:

DECLARE @table1 TABLE(col1 VARCHAR(1), col2 VARCHAR(2))

INSERT INTO @table1 VALUES
('A', 'B'),
('A', 'D'),
('A', 'C'),
('A', 'A'),
('B', 'C'),
('B', 'B'),
('B', 'D'),
('C', 'D'),
('C', 'B'),
('C', 'C')

SELECT * FROM @table1
ORDER BY col1, CASE WHEN col1 = col2 THEN '!' ELSE col2 END

注意:我假设您的第二列数据中没有感叹号。

答案 1 :(得分:0)

为什么不这样:

SELECT * FROM TableA
GROUP BY ColA, ColB
ORDER BY ColA, ColB