如何在SQL中不使用DISTINCT的情况下删除重复值?

Morteza Jangjoo

我有一个临时表,其中有一列:

OfficeID
-----
0
1
1
1
60
60
61
61
61
61
317
317  <----
63   <----
63
63
63
63

当我Distinct用来删除重复值时,SQL对结果进行排序,如下所示,但我不希望对它进行排序。

OfficeID
--------
    0
    1
    60
    61
    63      <---
    317     <---

我想要没有重复值且没有排序的结果

OfficeID
----------
    0
    1
    60
    61
    317    <---
    63     <---
泰洛

如果您不能更改实际表的结构,那么我只能想到一种实现此目的的方法,那就是使用临时表或表变量。在下面的测试设置中,我选择了后者。

首先,您需要一个IDENTITY列来“存储”事物的顺序:

DECLARE @TempTable TABLE
(
  TempID       INT IDENTITY(1, 1)
, OfficeID INT
);

然后,使用事物的原样顺序填充(不带ORDER BY):

INSERT INTO @TempTable (OfficeID)
SELECT OfficeID
FROM OfficeIDs;

现在,如果有的话,我们可以使用引入一些魔术ROW_NUMBER(),在这种情况下,该魔术仅用于选择每个OfficeID系列的第一项:

SELECT
         OfficeID
FROM     (SELECT
               *
             , ROW_NUMBER() OVER (PARTITION BY OfficeID ORDER BY TempID) SortOrder
          FROM @TempTable) AS t
WHERE t.SortOrder = 1
ORDER BY TempID;

请注意,我需ORDER BY @TempTable.TempID要这样做以保持原始排序。

我的测试结果:

OfficeID
-----------
0
1
60
61
317
63

(6 rows affected)


Completion time: 2020-01-01T13:44:14.9947886+01:00

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不使用Distinct的情况下删除SQL查询中的重复项?

来自分类Dev

如何在不使用集合的情况下从python列表中删除重复的单词?

来自分类Dev

如何在不使用`uniq`的情况下删除数组中的重复项?

来自分类Dev

如何在不使用集合的情况下从python列表中删除重复的单词?

来自分类Dev

如何在不使用数组的情况下删除字符串中的重复单词?

来自分类Dev

C ++如何在不使用向量的情况下从数组中删除0个值

来自分类Dev

如何在不使用MS SQL中的SubQuery的情况下比较Max(Count(*))值?

来自分类Dev

如何在不使用主键的情况下删除重复记录

来自分类Dev

如何在不使用While的情况下删除左侧重复的字符串?

来自分类Dev

如何在不使用内置函数的情况下从python中的数组中删除元素

来自分类Dev

如何在不使用SQL Server 2008中的循环的情况下通过增量值更新字段的值?

来自分类Dev

如何在不使用“包含”的情况下从列表框中删除项目?

来自分类Dev

如何在不使用.remove的情况下从列表中删除元素

来自分类Dev

如何在不使用 Java 索引的情况下从 Arraylist 中删除数组元素

来自分类Dev

如何在有条件的情况下删除SQL Server中的重复行?

来自分类Dev

在下表中,如何在不使用DISTINCT关键字的情况下检索employee_location的唯一值?

来自分类Dev

在下表中,如何在不使用DISTINCT关键字的情况下检索employee_location的唯一值?

来自分类Dev

PHP:如何在不使用数组的情况下从MySQL中的单行中选择单个值

来自分类Dev

如何在不使用python循环的情况下比较列表中的值?

来自分类Dev

如何在不使用状态的情况下清除功能组件中输入字段的值?

来自分类Dev

我如何在不使用long if else语句的情况下替换python字典中的值

来自分类Dev

如何在不使用不重复的情况下避免一对多关联中的重复记录?

来自分类Dev

在不使用额外数组的情况下删除重复字符

来自分类Dev

如何在不使用prepareStatement的情况下避免JasperReports中的SQL注入

来自分类Dev

如何在不使用 DISTINCT 关键字的情况下获取 mysql 中不同行的计数

来自分类Dev

如何在不使用Django应用values()方法的情况下使用distinct()方法?

来自分类Dev

如何在不计算SQLITE不同行中的重复值的情况下使用Count()?

来自分类Dev

如何在不使用oracle sql中不使用Regex的情况下替换指定字符以外的字符?

来自分类Dev

如何在不使用 distinct 的情况下显示唯一记录?

Related 相关文章

  1. 1

    如何在不使用Distinct的情况下删除SQL查询中的重复项?

  2. 2

    如何在不使用集合的情况下从python列表中删除重复的单词?

  3. 3

    如何在不使用`uniq`的情况下删除数组中的重复项?

  4. 4

    如何在不使用集合的情况下从python列表中删除重复的单词?

  5. 5

    如何在不使用数组的情况下删除字符串中的重复单词?

  6. 6

    C ++如何在不使用向量的情况下从数组中删除0个值

  7. 7

    如何在不使用MS SQL中的SubQuery的情况下比较Max(Count(*))值?

  8. 8

    如何在不使用主键的情况下删除重复记录

  9. 9

    如何在不使用While的情况下删除左侧重复的字符串?

  10. 10

    如何在不使用内置函数的情况下从python中的数组中删除元素

  11. 11

    如何在不使用SQL Server 2008中的循环的情况下通过增量值更新字段的值?

  12. 12

    如何在不使用“包含”的情况下从列表框中删除项目?

  13. 13

    如何在不使用.remove的情况下从列表中删除元素

  14. 14

    如何在不使用 Java 索引的情况下从 Arraylist 中删除数组元素

  15. 15

    如何在有条件的情况下删除SQL Server中的重复行?

  16. 16

    在下表中,如何在不使用DISTINCT关键字的情况下检索employee_location的唯一值?

  17. 17

    在下表中,如何在不使用DISTINCT关键字的情况下检索employee_location的唯一值?

  18. 18

    PHP:如何在不使用数组的情况下从MySQL中的单行中选择单个值

  19. 19

    如何在不使用python循环的情况下比较列表中的值?

  20. 20

    如何在不使用状态的情况下清除功能组件中输入字段的值?

  21. 21

    我如何在不使用long if else语句的情况下替换python字典中的值

  22. 22

    如何在不使用不重复的情况下避免一对多关联中的重复记录?

  23. 23

    在不使用额外数组的情况下删除重复字符

  24. 24

    如何在不使用prepareStatement的情况下避免JasperReports中的SQL注入

  25. 25

    如何在不使用 DISTINCT 关键字的情况下获取 mysql 中不同行的计数

  26. 26

    如何在不使用Django应用values()方法的情况下使用distinct()方法?

  27. 27

    如何在不计算SQLITE不同行中的重复值的情况下使用Count()?

  28. 28

    如何在不使用oracle sql中不使用Regex的情况下替换指定字符以外的字符?

  29. 29

    如何在不使用 distinct 的情况下显示唯一记录?

热门标签

归档