SELECT DISTINCT field1, field2, field3, ......
FROM table;

我试图完成以下SQL语句,但我希望它返回所有列。 这可能吗?

就像这样:

SELECT DISTINCT field1, * 
FROM table;

当前回答

你可以用with子句来实现。

例如:

WITH c AS (SELECT DISTINCT a, b, c FROM tableName)
SELECT * FROM tableName r, c WHERE c.rowid=r.rowid AND c.a=r.a AND c.b=r.b AND c.c=r.c

这还允许您只选择WITH子句查询中选择的行。

其他回答

SELECT DISTINCT FIELD1, FIELD2, FIELD3 FROM TABLE1,如果这三列的值在表中都是唯一的。

例如,如果您的名字有多个相同的值,但所选列中的姓和其他信息不同,则该记录将包含在结果集中。

SELECT  c2.field1 ,
        field2
FROM    (SELECT DISTINCT
                field1
         FROM   dbo.TABLE AS C
        ) AS c1
        JOIN dbo.TABLE AS c2 ON c1.field1 = c2.field1

Try

SELECT table.* FROM table 
WHERE otherField = 'otherValue'
GROUP BY table.fieldWantedToBeDistinct
limit x
SELECT * from table where field in (SELECT distinct field from table)

这是一个简单的解决方法:

 WITH cte AS /* Declaring a new table named 'cte' to be a clone of your table */
 (SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY val1 DESC) AS rn
 FROM MyTable /* Selecting only unique values based on the "id" field */
 )
 SELECT * /* Here you can specify several columns to retrieve */
 FROM cte
 WHERE rn = 1