当存在多个具有相同业务含义的行时,如何仅选择一行?

时间:2017-02-08 00:40:07

标签: sql

我的表格如下所示:

From    To     Distance
-----------------------
ATL     NY     100
NY      ATL    100
DAL     NY     300
NY      DAL    300
DAL     MCI    200
MCI     DAL    200

在这种情况下,前两行具有相同的商业含义,同样也是第三和第四行(它基本上是相同的路线,但是根据行程而变化)。

我需要输出像

ATL   NY    100
DAL   NY    100
DAL   MCI   200

我的想法是我只需要具有不同商业含义的相同行。所以我想要第一排或第二排以及第三排或第四排。

提前感谢您的帮助:)

4 个答案:

答案 0 :(得分:0)

非常简单

SELECT * FROM table_name WHERE To = 'NY'

答案 1 :(得分:0)

两种可能性,因为您只需要不同的记录

Select From,To,Distance from table_name
Group By From,To,Distance

OR

Select Distinct From,To,Distance from table_name

答案 2 :(得分:0)

select DISTINCT "From", To, Distance from T

我不知道是回答您的问题还是提供产生您想要的结果的查询,而且我不知道哪一行具有相同的路径意味着什么。上面的查询回答了标题中的问题,而不是您描述的输出。

我将"From"放在引号中是有原因的。 From 是一个SQL关键字。在SQL中,列名称称为标识符。没有规则禁止标识符看起来像关键字,但它可能会让人感到困惑,有时会让SQL解析器感到困惑。为了区分,SQL中的规则是双引号中的任何字符串都被视为标识符。

如果我有选择,我会避免使用也是关键字的标识符。数据库中存在大量的内容;在命名 start-until 或类似的时候,大多数都是清晰的。你的可能是 origin-destination

答案 3 :(得分:0)

试试这个

SELECT * FROM table_name GROUP BY From HAVING COUNT(From) = 1