代码之家  ›  专栏  ›  技术社区  ›  Anjali

试图从sql中获取最新的ID和一个唯一的名称

  •  0
  • Anjali  · 技术社区  · 1 年前

    我需要得到 Sectionname SectionId 从…起 SectionNomination 桌子我需要将 SectionId 获取最后一节也是唯一一节 SectionName .

    因此,从这张表来看:

    enter image description here

    我需要一个 testSection1 还有一个 TestSection3 有一个 section ID 即35。与相同 测试部分3 ,我想得到 sectionID = 37 .

    我写这个查询是为了实现这一点:

    select  
        SectionName, SectionId
    from 
        testTable pt, 
        (select max(SectionId) as pID 
         from testTable 
         group by SectionID) st
    where 
        pt.SectionID = st.pID
    

    这不会返回最大ID,也会返回重复项。

    以下是示例数据:

    INSERT INTO [dbo].[testTable] ([SectionName])
    VALUES ('TestSection1')
    
    INSERT INTO [dbo].[testTable] ([SectionName])
    VALUES ('TestSection2')
    

    sectionId 是“标识”列。

    创建表是这样的SQL语句:

    CREATE TABLE [dbo].[testTable]
    (
        [SectionID] [int] IDENTITY(1,1) NOT NULL,
        [SectionName] [varchar](1000) NULL,
        
        CONSTRAINT [PK_SectionNomination] 
            PRIMARY KEY CLUSTERED ([SectionID] ASC)
    )
    
    1 回复  |  直到 1 年前
        1
  •  4
  •   Dai    1 年前

    你所需要的只是。。。

    SELECT
        s.SectionName,
        MAX( s.SectionId ) AS MaxSectionId
    FROM
        dbo.TestTable AS s
    GROUP BY
        s.SectionName
    ORDER BY
        SectionName;
    
    章节名称 最大节Id
    测试部分1 35
    测试部分3 37
    测试部分4 38

    DbFiddle