SQLserver去重函数
时间: 2023-08-13 22:07:47 浏览: 205
SQL Server 去重
在 SQL Server 中,可以使用多种方式进行去重操作。以下是其中几种常用的方法:
1. 使用 DISTINCT 关键字:
```
SELECT DISTINCT column_name
FROM table_name;
```
这将返回指定列中的唯一值,去除重复项。
2. 使用 GROUP BY 子句:
```
SELECT column_name
FROM table_name
GROUP BY column_name;
```
这将按照指定列进行分组,并返回每个组中的唯一值。
3. 使用 ROW_NUMBER() 函数:
```
WITH CTE AS (
SELECT column_name, ROW_NUMBER() OVER(PARTITION BY column_name ORDER BY column_name) AS RN
FROM table_name
)
SELECT column_name
FROM CTE
WHERE RN = 1;
```
这将为每个重复的值添加一个行号,并选择行号为 1 的记录,即去除重复项。
4. 使用 EXISTS 子查询:
```
SELECT column_name
FROM table_name t1
WHERE NOT EXISTS (
SELECT 1
FROM table_name t2
WHERE t1.column_name = t2.column_name
AND t1.primary_key <> t2.primary_key -- 如果有主键,可以使用主键进行排除
);
```
这将通过子查询检查是否存在相同的值,并排除重复项。
5. 使用 CTE 和 RANK() 函数:
```
WITH CTE AS (
SELECT column_name, RANK() OVER (PARTITION BY column_name ORDER BY column_name) AS RN
FROM table_name
)
SELECT column_name
FROM CTE
WHERE RN = 1;
```
这将为每个重复的值添加一个排名,并选择排名为 1 的记录,即去除重复项。
以上是一些常见的 SQL Server 去重方法,你可以根据具体情况选择适合的方法。
阅读全文