2014-02-24 94 views
0

我有一个表,看起来喜欢这个订购两列,改变排序顺序

ID Side Name  
-- --- ------- 
1 Left Bravo 
1 Right Alpha 
2 Left Delta 
2 Right Charlie 
3 Left Fox 
3 Right Echo 

我需要的表到看起来像这样的地方排序ID列和侧栏,但侧列进行排序右拐,然后左拐

ID Side Name  
-- --- ------- 
1 Right Alpha 
1 Left Bravo 
2 Right Charlie 
2 Left Delta 
3 Right Echo 
3 Left Fox 

我已经尝试使用order by ID,Side DESC & ASC但查询结果不会改变

+1

你用MySQL和SQL Server标记了这个标签。那些是不同的系统。你实际使用哪一个? –

+3

奇怪的是,'ORDER BY ID,Side DESC'应该可以正常工作,你确定吗? – Lamak

+0

@Lamak我是。做一个'按名称排序'对第三列进行排序,但不知何故Side列将不会退出。有没有解决方法? – Nik

回答

1

您可以使用CASE的侧柱

SELECT * FROM table 
ORDER BY id ASC, 
CASE WHEN `side` ='Right' THEN 1 ELSE 2 END 

Fiddle Demo

+0

即使这会起作用,查询op所说的使用也应该工作 – Lamak

+0

@Lamak你得到的评论,所以需要移动另一种方法 –

+0

据我所知,我只是说,因为它不适用于op,那么问题可能在别处。我不知道他的查询不会如何工作,但是您的查询将会生效 – Lamak