我有两个表。 如何订购此表例如:带分组的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