Sql 带WHERE的独立子句

Sql 带WHERE的独立子句,sql,distinct,where,Sql,Distinct,Where,如何将DISTINCT子句与WHERE连用?例如: SELECT * FROM table WHERE DISTINCT email; -- email is a column name 我想从具有不同电子邮件地址的表中选择所有列。可能是: SELECT DISTINCT email,id FROM table where id='2'; 如果您是指电子邮件唯一的所有列: SELECT * FROM table WHERE email in (SELECT email FROM t

如何将DISTINCT子句与WHERE连用?例如:

SELECT * FROM table WHERE DISTINCT email; -- email is a column name
我想从具有不同电子邮件地址的表中选择所有列。

可能是:

SELECT DISTINCT email,id FROM table where id='2';

如果您是指电子邮件唯一的所有列:

SELECT * FROM table WHERE email in
     (SELECT email FROM table GROUP BY email HAVING COUNT(email)=1);
select distinct email,* from table_name

您可以使用行号。您还可以指定条件的位置。e、 g.在下面的查询中使用类似“MyName%”的名称

SELECT  *
FROM    (SELECT ID, Name, Email,
            ROW_NUMBER() OVER (PARTITION BY Email ORDER BY ID) AS RowNumber
     FROM   MyTable
     WHERE  Name LIKE 'MyName%') AS a
WHERE   a.RowNumber = 1

一个简单的查询即可:

SELECT * 
FROM table 
GROUP BY email 
HAVING COUNT(*) = 1;
这不管用吗:

 SELECT email FROM table1 t1 
          where UNIQUE(SELECT * FROM table1 t2); 
查询:

你可以使用HAVING子句


简单查询此查询从电子邮件唯一的表中选择所有记录:

SELECT * FROM table WHERE email in
     (SELECT email FROM table GROUP BY email HAVING COUNT(email)=1);
select distinct email,* from table_name

如果您的表中有一个唯一的列,例如tableid,请尝试此操作

SELECT EMAIL FROM TABLE WHERE TABLEID IN 
(SELECT MAX(TABLEID), EMAIL FROM TABLE GROUP BY EMAIL)
尝试:

通过电子邮件从表组中选择*

如果有意义的话,这将返回第一个ID出现时接收的唯一电子邮件的所有行 我想这就是你一直在寻找的,因为我有同样的问题,但这些答案都不适合我。
从dbo.Table.Contacts中选择DISTINCT dbo.Table.Email、dbo.Table.FirstName dbo.Table.LastName、dbo.Table.DateOfBirth等
电子邮件地址在哪里name@email';

这在术语上是矛盾的。您的意思是选择电子邮件唯一的所有列吗?请参阅更新的查询,这意味着我在回答中更新了查询,解决了您的问题。@Mohit:您想说什么?请详细说明?我想选择所有具有唯一电子邮件和id='2'的行;电子邮件和id是我表格中的两列我不想更新,我只想从我的表格中选择行!!具有唯一的电子邮件和id='2';例如:-从表中选择*,其中不同的电子邮件和id='2';我知道上面的查询是错误的,但我只想做上面提到的事情query@Mohit:查看更新的查询意味着我已在我的答案中更新了我的查询,解决了您的问题。如果我将SELECT*FROM table where inselect DISTINCE email FROM table?@jWeaver…甚至我最初的想法都与您的想法相同,这是错误的。但是,尝试执行查询。这是错误的。@Delfino根据电子邮件字符串按分区对结果集进行分组,并应用have作为一种类型来决定返回哪个分区。子查询只返回包含一行的分区,即唯一邮件。我不知道有多少数据库管理系统实现了唯一谓词。你用哪一种?此外,我认为您的查询是反向的:SELECT电子邮件不应该包装在唯一谓词中吗?我认为您需要表1 t2中的某种join子句,其中t2.email=t1.email。op没有指定SQL的风格,但此命令不会在SQL Server中运行,并且会在MySQL中产生不明确的结果。只有当表中唯一的列为[email]时,此命令才会起作用因为只有分组条件或聚合中的列可以在选择列表中
SELECT EMAIL FROM TABLE WHERE TABLEID IN 
(SELECT MAX(TABLEID), EMAIL FROM TABLE GROUP BY EMAIL)