我有兩個表。 如何訂購此表例如:帶分組的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
我有兩個表。 如何訂購此表例如:帶分組的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
我想這一點,可能是有用的:
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
注:我假設您的第二欄數據中沒有感嘆號。
'CASE WHEN col1 = col2然後 '!' ELSE col2 END'將一個a,b b,c c,然後另一個 – Malenkymuk
@Malenkymuk我在我的ssms中運行了這個查詢,它給出了所需的內容。也檢查這個小提琴:http://sqlfiddle.com/#!6/9eecb7db59d16c80417c72d1/3241。如果這不符合你的期望,那麼我會建議在你的問題中添加你的排序邏輯。 –
對不起,沒有看到'col1,'。謝謝。 – Malenkymuk
爲什麼不這樣:
SELECT * FROM TableA
GROUP BY ColA, ColB
ORDER BY ColA, ColB
邏輯本身是不明確的,你應該提供你嘗試過什麼到目前爲止的代碼,原因,因爲它是這是不可能幫助你。 –
'SELECT a。*,b。* from tablea a left join tableb b on(a.field = b.field)ORDER by a.field,b.field' - 試試這個,未經測試 – Corbin