SQL-查找列是否有多个不同的值
我正在浏览一个大表中的列,我想知道该列是否有多个不同的值。我不关心这些值是什么,也不关心有多少个不同的值,如果我们有多个不同的值,我只需要返回true,即两行中该列的值不同,否则返回false。性能是我最关心的问题。在SQL中实现这一点的最佳方法是什么SQL-查找列是否有多个不同的值,sql,sql-server,Sql,Sql Server,我正在浏览一个大表中的列,我想知道该列是否有多个不同的值。我不关心这些值是什么,也不关心有多少个不同的值,如果我们有多个不同的值,我只需要返回true,即两行中该列的值不同,否则返回false。性能是我最关心的问题。在SQL中实现这一点的最佳方法是什么 编辑:表在MSSQL上有1M+行。列具有多种数据类型;有些是可空的,有些不是 我想我最初完全误解了这个问题。你想知道这些值是否都不一样,使用distinct这个词让我很反感 如果你想知道,你可以: select (case when exists
编辑:表在MSSQL上有1M+行。列具有多种数据类型;有些是可空的,有些不是 我想我最初完全误解了这个问题。你想知道这些值是否都不一样,使用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开始寻找另一个值,并应在遇到第一个值时停止。通常情况下,我会建议在列中添加一个性能索引。什么是一个大表?1000万张唱片?更多较少的你用的是什么服务器?神谕mySQL?MSSQL?你有一个例子行吗?您正在比较哪些数据类型?你这边有很多未回答的问题…在你想要检查的一列或多列上创建一个唯一的索引,看看这些索引是否无法创建。