数据库
首页 > 数据库> > SQL SERVER 查找一列的非重复数据

SQL SERVER 查找一列的非重复数据

作者:互联网

SELECT * FROM 想查询的表

WHERE 条件列 IN

(SELECT MAX/MIN(条件列) FROM TEST.dbo.TEST_1 GROUP BY 想要查找的列)

 

 

 

例如一表中有 员工姓名、编号、所在部门、录入时间

要求,找到每个部门中最后一个加入的员工信息

 

在TEST数据库中建测试用表如下:

USE [TEST]
GO

/****** Object: Table [dbo].[TEST_1] Script Date: 2021/7/15 16:22:01 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TEST_1](
[NAME] [nvarchar](10) NULL,
[CODE_NUMBER] [int] NULL,
[DEPARTMENT] [nvarchar](50) NULL,
[UPDATE_TIME] [datetime] NULL
) ON [PRIMARY]
GO

 

查询表看看: 

SELECT * FROM TEST_1 WITH(NOLOCK)

 

插入测试所需的数据:

INSERT INTO TEST_1 (
NAME,CODE_NUMBER,DEPARTMENT,UPDATE_TIME
) VALUES
(N'丁小冉',10001,N'营业部门','2021-01-01 00:00:00.000'),
(N'戴望秋',10002,N'营业部门','2021-02-02 00:00:00.000'),
(N'叶思夏',10003,N'研发部门','2021-03-03 00:00:00.000'),
(N'李沐春',10004,N'人事部门','2021-05-05 00:00:00.000'),
(N'秦暖冬',10005,N'管理部门','2021-06-06 00:00:00.000'),
(N'王心怡',10006,N'研发部门','2021-07-07 00:00:00.000')

 

这里又查询一次,看看数据插入的效果,顺便与查找一列的非重复数据做比对

SELECT * FROM TEST_1 WITH(NOLOCK)

 

因为是想要查找每个部门中最后一个加入的员工信息,

所以条件列是UPDATE_TIME、最后一个,所以用MAX方法,要查找的是每个部门,所以想要查找的列是DEPARTMENT


SELECT * FROM TEST.dbo.TEST_1

WHERE UPDATE_TIME IN

(SELECT MAX(UPDATE_TIME) FROM TEST.dbo.TEST_1 GROUP BY DEPARTMENT)

标签:00,dbo,00.000,SERVER,查找,2021,SQL,TEST,SELECT
来源: https://www.cnblogs.com/Lee597/p/15016192.html