SqlServer教程

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)

这篇关于SQL SERVER 查找一列的非重复数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!