2015-09-14 26 views
0

我有兩個表。 如何訂購此表例如:帶分組的mssql訂單表

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 
+0

邏輯本身是不明確的,你應該提供你嘗試過什麼到目前爲止的代碼,原因,因爲它是這是不可能幫助你。 –

+0

'SELECT a。*,b。* from tablea a left join tableb b on(a.field = b.field)ORDER by a.field,b.field' - 試試這個,未經測試 – Corbin

回答

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 

注:我假設您的第二欄數據中沒有感嘆號。

+0

'CASE WHEN col1 = col2然後 '!' ELSE col2 END'將一個a,b b,c c,然後另一個 – Malenkymuk

+0

@Malenkymuk我在我的ssms中運行了這個查詢,它給出了所需的內容。也檢查這個小提琴:http://sqlfiddle.com/#!6/9eecb7db59d16c80417c72d1/3241。如果這不符合你的期望,那麼我會建議在你的問題中添加你的排序邏輯。 –

+0

對不起,沒有看到'col1,'。謝謝。 – Malenkymuk

0

爲什麼不這樣:

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