假如有两个关联表,是一对多关系的主子表。如下:主表 CREATE TABLE [dbo].[CourseT]( [CourseID] [int] IDENTITY(1,1) NOT NULL, [CourseName] [nchar](10) COLLATE Chinese_PRC_CI_AS_WS NULL) ON [PRIMARY] 字表 CREATE TABLE [dbo].[Broad]( [BroadID] [int] IDENTITY(1,1) NOT NULL, [CourseID] [int] NULL, [BroadName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS_WS NULL) ON [PRIMARY] 如果我们想查询Broad表中记录对应的CourseT表中的记录,且按CourseID的降序只取一次,在SQL2005中SQL如下 with temp as (select distinct courseid from Broad ), temp2 as( select courseid , ROW_NUMBER() OVER(ORDER BY courseid desc) AS row_num from temp )select CourseT.* from CourseT, temp2 where courset.courseid=temp2.courseid order by row_num