2016-06-01 5 views
7

私はこれらのような値を持つテーブルがある:ROW_NUMBER()の値を取得する方法は?

Name Order Innings 
Suresh 1   1 
Ramesh 2   1 
Sekar  3   1 
Raju  1   2 
Vinoth 2   2 
Ramu  3   2 

私は結果は次のようになりたい:

1stInn 2ndInn Order 
Suresh Raju  1 
Ramesh Vinoth 2 
Sekar Ramu  3 

私はSQL ServerでROW_NUMBER()を使用して結果を得ました。

SQL Compactで同じ結果が欲しいですが、SQL CompactでROW_NUMBER()を使用することはできません。

私はSQLのコンパクトバージョンを使用しています - 4.0.8482.1

にはどうすればいい結果を得ることができますか?

+2

を与える私達にあなたの現在の(SQL Serverの)クエリを表示します。 – jarlh

答えて

8

なぜROW_NUMBER()が必要ですか?あなたはCASE EXPRESSIONを使用して条件付きの集約を使用することができます。

SELECT MAX(CASE WHEN t.innings = 1 THEN t.name END) as 1stInn, 
     MAX(CASE WHEN t.innings = 2 THEN t.name END) as 2sndInn, 
     t.Order 
FROM YourTable t 
GROUP BY t.order 
3

簡単なピボットは、同様の結果に

DECLARE @Table1 TABLE 
    (Name varchar(6), [Order] int, Innings int) 
; 

INSERT INTO @Table1 
    (Name , [Order] , Innings) 
VALUES 
    ('Suresh', 1, 1), 
    ('Ramesh', 2, 1), 
    ('Sekar', 3, 1), 
    ('Raju', 1, 2), 
    ('Vinoth', 2, 2), 
    ('Ramu', 3, 2) 
; 
select [1] AS '1stinn',[2] AS '2ndinn',[order] from(
select Name , [Order] , Innings from @Table1)T 
PIVOT (MAX(NAME) FOR Innings IN ([1],[2]))PVT 
+0

ご回答いただきありがとうございます@ mohan111。 SQL CompactはPIVOTを受け入れません。 – DineshDB

+0

ようこそ@DineshDB – mohan111

+0

しかし、それはSQL Serverで正常に動作します。 +1 – DineshDB

関連する問題