2015-01-27 3 views
0

Я хочу, чтобы сортировать пользователей, поэтому у меня есть это:Отсортируйте пользователей по определенном порядке

SELECT TOP(@UnitUsers) * FROM users ORDER BY unit_followers DESC 

И я получаю: (user_id, имя пользователя, unit_followers)

1 Test 123 
2 Admin 89 
3 Ola 79 
4 Pat 67 
5 Twe 54 
6 Dry 42 

Но теперь, я добавить новый стол, продвижение с 2 колонками, user_id и sort_order. В этой таблице необходимо задать порядок сортировки для определенных пользователей. Эта таблица содержит только один пользователь, user_id = 5 и sort_order = 2. (Can содержит более одного пользователя)

Как я могу получить это: (user_id, имя пользователя, unit_followers)

1 Test 123 
5 Twe 54 
2 Admin 89 
3 Ola 79 
4 Pat 67  
6 Dry 42 

ответ

1

Используйте этот изготовленный под заказ

SELECT user_id, 
     username, 
     unit_followers 
FROM (SELECT Row_number()OVER (ORDER BY unit_followers DESC) rn, 
       a.*, 
       b.sort_order 
     FROM users a 
       LEFT JOIN promote b 
         ON a.user_id = b.user_id) a 
ORDER BY Isnull(sort_order - 1, rn),rn 
+0

Perfect. Спасибо за вашу помощь! – mrcode

Смежные вопросы