2016-12-15 3 views
0

У меня возникла проблема в изменении порядка. Я хочу заказать это Username и UserType без разбитых NumRow. Она должна быть 1,2,3 и т.д. Ниже изображение на мой текущий результат:SQL: изменить порядок на 2 столбца

enter image description here

Это текущий SQL:

WITH ReceiverList AS 
(
    SELECT 
    ROW_NUMBER() OVER (ORDER BY receiver.username asc) NumRow, 
    receiver.username AS Username, 
    user_lookup.user_login_id AS UserID, 
    CASE 
     WHEN user_lookup.username = user_lookup.user_login_id THEN 'RECEIVER' 
     ELSE 'SUB-RECEIVER' 
    END AS UserType 
    FROM receiver 
    JOIN user_lookup 
    ON receiver.username = user_lookup.username 
) 

SELECT TOP 4 * 
FROM ReceiverList 

Вот результат я хочу, но порядок (NumRow) должно быть 1,2,3,4. Этот sql я использую внутренние datatables ajax для заказа и поиска. Пожалуйста, помогите мне, ребята.

enter image description here

ответ

0

Согласно ваш результат, вы также хотите приказать UserId:

WITH ReceiverList AS (
     SELECT r.username AS Username, 
      ul.user_login_id AS UserID, 
      (CASE WHEN ul.username = ul.user_login_id THEN 'RECEIVER' 
        ELSE 'SUB-RECEIVER' 
       END) AS UserType 
     FROM receiver r JOIN 
      user_lookup ul 
      ON r.username = ul.username 
    ) 
SELECT TOP 4 
     row_number() over (username, usertype, userid) as rownum 
     rl.* 
FROM ReceiverList 
ORDER BY rownum; 

Вы не можете использовать usertype в том же SELECT, где она определена.