SQL - 查找列是否具有多个不同的值

时间:2014-11-06 23:53:18

标签: sql sql-server

我正在浏览一个大表中的列,我想知道该列是否有多个不同的值。我不关心值是什么或者有多少不同的值,如果我们有多个不同的值(即两列具有不同的值,那么我只需要返回true),否则返回false。表现是我​​主要关注的问题。在SQL中实现此功能的最佳方法是什么?

编辑:表在MSSQL上有1M +行。列有多种数据类型;有些是可以为空的,有些则不是。

1 个答案:

答案 0 :(得分:2)

我想我最初完全误解了这个问题。你想知道这些值是不是所有的相同(使用单词" distinct"把我扔掉)。

如果你想知道,你可以这样做:

select (case when exists (select 1 from table t2 where t2.col <> t.col)
             then 'true'
             else 'false'
        end)
from (select top 1 col from table t) t;

from子句选择任意值。 exists开始寻找另一个值,应该在遇到的第一个值处停止。通常情况下,我建议在列上添加索引以提高性能。