SQL SERVER 查找一列的非重复数据
2021/7/15 19:07:41
本文主要是介绍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 查找一列的非重复数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)