2016-12-15 8 views
0

これを並べ替える際に問題が発生しました。私はUsernameUserTypeNumRow命令を壊さずにこれを注文したいと思っています。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 

は私が望む結果が、オーダーである(なお、以下に1,2,3などの画像は、私の現在の結果であるべきです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; 

あなたはそれが定義されているのと同じSELECTusertypeを使用することはできません。

関連する問題