如何获取 ROW_NUMBER() 的替代值?
How to get values alternate for ROW_NUMBER()?
我有一个 table 值如下:
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 服务器中使用 ROW_NUMBER()
得到了结果。
我想要在 SQL Compact 中得到相同的结果,但是我不能在 SQL Compact 中使用 ROW_NUMBER()
。
我正在使用 SQL 精简版 - 4.0.8482.1
我怎样才能得到结果?
为什么需要 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
简单的 Pivot 会给出类似的结果
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
我有一个 table 值如下:
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 服务器中使用 ROW_NUMBER()
得到了结果。
我想要在 SQL Compact 中得到相同的结果,但是我不能在 SQL Compact 中使用 ROW_NUMBER()
。
我正在使用 SQL 精简版 - 4.0.8482.1
我怎样才能得到结果?
为什么需要 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
简单的 Pivot 会给出类似的结果
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