有一张表格:
NAME | DATE | INFO | SPEC
Bob | 01.01.2010 | Text1 | Student
Ann | 02.02.2020 | Text2 | Secretary
Bob | 01.01.2010 | Text1 | Student
John | 03.03.2030 | Text3 | Tester
Bob | 01.01.2010 | Text1 | Student
如何获得这样的表格(请求中):
NAME | DATE | INFO | SPEC
Bob | 01.01.2010 | Text1 | Student
Ann | 02.02.2020 | Text2 | Secretary
John | 03.03.2030 | Text3 | Tester
PS:这些变体不起作用:
SELECT DISTINCT Name, Date, Info, Spec FROM Table
SELECT DISTINCT * FROM Table
SELECT Name, Date, Info, Spec FROM Table GROUP BY Name, Date, Info, Spec
SELECT * FROM Table GROUP BY Name, Date, Info, Spec
答案 0 :(得分:0)
您需要使用DISTINCT
关键字
尝试这样的查询:
SELECT DISTINCT * FROM table
答案 1 :(得分:0)
答案 2 :(得分:0)
使用DISTINCT
。 From the docs:
ALL和DISTINCT选项指定是否应返回重复的行。 ALL(默认值)指定应返回所有匹配的行,包括重复行。不同 指定从结果集中删除重复的行。
所以使用这样的东西:
SELECT DISTINCT * from tablename;
答案 3 :(得分:0)
如果存在除提及列之外的主键,则可以使用此代码
delete from myTable where pkID not in
(
select min(pkID) from myTable
group by NAME,DATE ,INFO ,SPEC
)
假设 pkID 是主键
如果没有除这4列之外的其他列,则按照以下方式执行:使用临时表。
Create table #tmp
(
NAME varchar(50),
DATE date,
INFO varchar(50),
SPEC varchar(50)
)
insert into #tmp
select distinct * from myTable
delete from myTable
insert into myTable
select * from #tmp
代码是SQL Server,希望它可以帮到你。
答案 4 :(得分:0)
在您的选择查询中使用DISTINCT