如何从复合主键表中选择*

时间:2017-03-14 04:54:13

标签: sql sql-server

我学会了How select distinct from composite primary key table

; with temp as (
 select row_number() over (partition by First_PK order by Second_PK desc)
   as row_num, First_PK, Second_PK, data
 from test)
 select * from temp
 where row_num = 1

但我现在面临另一个问题,而不是where row_num = 1我希望where row_num = MAX(我的意思是最大值)

How select distinct from composite primary key table

2 个答案:

答案 0 :(得分:1)

由于一个排序顺序中的最后一行将是相反排序顺序中的第一行,您只需将order by子句更改为在窗口函数row_number中使用升序:

; with temp as (
 select row_number() over (partition by First_PK order by Second_PK)
   as row_num, First_PK, Second_PK, data
 from test)
 select * from temp
 where row_num = 1

答案 1 :(得分:0)

解决方案是:

; with temp as (
 select row_number() over (partition by First_PK order by Second_PK)
   as row_num, First_PK, Second_PK, data
 from test)
 select * from temp
 WHERE row_num=(SELECT max(row_num) FROM temp);
相关问题