繁体   English   中英

SQL:在where子句中不同

[英]SQL: distinct in where clause

我有一个查询,执行后显示:

Name  | LasName | City
-------------------------
John  | Doe     | London
John  | Doe     | Berlin
Martin| Smith   | Paris

我可以在WHERE子句部分中做任何事情,以便获得一个John Doe,而不论城市是什么?

该查询是巨大的,这就是为什么我不在此发布它。

如果您认为我可以做任何事情,请发布一个伪造的查询解释它,我只需要了解这个概念即可。

非常感谢!

您没有声明RDBMS。 一种应该起作用的方法。

SELECT Name,
       LasName,
       MAX(City) AS City
FROM   YourQuery
GROUP  BY Name,
          LasName 

你说你不在乎哪个城市。 这给您最后一个字母顺序。

或替代

SELECT Name,
       LasName,
       City
FROM   (SELECT Name,
               LasName,
               City,
               ROW_NUMBER() OVER (PARTITION BY Name, LasName ORDER BY (SELECT 0)) AS RN
        FROM   YourQuery) T
WHERE  RN = 1 

假设您使用的是MySQL,并且想在一行上查看同一用户名的所有城市,请尝试以下操作:

select Name, LasName, group_concat(City)
from LargeQuery
group by Name, LasName

您可以使用以下查询(t-sql)

SELECT Distinct Name,LasName
FROM TableName

假设您要查询的行仅与城市无关,请尝试此操作,

select * from tablename 
where name = 'John'
and lasname = 'Doe'
and rownum = 1;
select * from `TableName` group by Name, LasName

暂无
暂无

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

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