繁体   English   中英

如何从表中选择两个值,其中值之一必须在SQL Server中是不同的

[英]How to select two values from table where one of the values has to be distinct in SQL Server

我正在使用此查询,并且需要帮助以针对我的情况重写它。

SELECT DISTINCT Sender 
FROM test_table 
WHERE ("Some condition").

从上面的查询中,我正在获得不同发件人姓名的列表。

但我希望在下表中显示更多的价值

SELECT Sender_type, DISTINCT Sender 
FROM test_table 
WHERE ("Some condition").

该查询显示一些错误。 因此,我需要显示一个结果,其中发件人必须是不同的值,以及相应发件人的发件人类型。

SELECT DISTINCT Sender, Sender_type, FROM test_table WHERE ("Some condition") groupby sender

尝试这个..

您的语法错误,确实会引发错误。 您应该按如下所示将DISTINCT放在SELECT命令之后,它将适用于整个select:

SELECT DISTINCT  Sender_type, Sender FROM test_table WHERE ("Some condition").

这里的文件

要了解关键字“ DISTINCT”是如何工作的,可以看一下: http : //databases.about.com/od/sql/a/Selecting-Distinct-Records-From-A-Table.htm

特别是部分:

您也可以将DISTINCT关键字用于列的组合。 在这种情况下,了解关键字的行为很重要。 现在,约束将应用于列的组合,而不是单个列。 SQL结果将是表中出现的那些列的所有值的唯一组合。 例如,考虑以下SQL查询: enter code here SELECT DISTINCT make,从汽车建模

因此,您的查询变为:

SELECT DISTINCT Sender_type, Sender FROM test_table WHERE ("Some condition")

您只需要GROUP BY而不是DISTINCT:

SELECT MIN(Sender_type), Sender  -- or MAX
FROM test_table 
WHERE ("Some condition")
GROUP BY Sender

如果有多个Sender_Type,则必须决定要使用的是MIN还是MAX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM