row_number函数初探 + 添加非空约束+添加主键约束

本文详细介绍了在SQLServer中如何为id字段添加非空约束,使用ROW_NUMBER()函数去除重复数据,以及如何添加主键约束。通过具体步骤和示例,帮助读者掌握SQLServer的数据管理和优化技巧。

SQLServer中为 id 添加非空约束:

ALTER TABLE dbo.student 
ALTER COLUMN id INT NOT NULL

注意:在添加非空约束前,id字段不能为空,否则添加不成功。

 

通过建立临时表和ROW_NUMBER() OVER函数对表中重复的数据去重

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,COL1相同的分在一个组中,在分组内部根据 COL2排序,该函数 返回 结果集分区内 行的的序列号,每一个分区的第一行从1开始。

使用row_number函数删除表中 id 重复的记录。

1、建立临时表。 with 表名 as (  select  列名 from 基表  )

2、在临时表中使用row_number() 函数进行分组。

3、删除行的序列号大于1 的行,即可去重。

WITH cte AS(
	SELECT *,
	ROW_NUMBER() OVER(
		PARTITION BY
			id  -- 根据id进行分组
		ORDER BY -- 组内根据年龄进行排序
			age 
	) AS row_num -- row_number函数返回的行序列号作为新的一列
	FROM dbo.student
)
DELETE FROM cte -- 删除行序号大于1的,即可去重
WHERE row_num>1

 

为 id 添加主键,注意:此时 id 必须非空且唯一,只有这样才满足添加主键的条件。

ALTER TABLE dbo.student
ADD PRIMARY KEY (id)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值