Sql 如何从表中的相同记录列表中获取唯一记录?表中没有唯一的约束
我在SQL Server输出中有一个查询 假设我有一个表Ex.StudentMaster,其中有一些字段没有唯一的约束。 例如,编号和名称 该表具有相同的数据。例如:Sql 如何从表中的相同记录列表中获取唯一记录?表中没有唯一的约束,sql,sql-server,Sql,Sql Server,我在SQL Server输出中有一个查询 假设我有一个表Ex.StudentMaster,其中有一些字段没有唯一的约束。 例如,编号和名称 该表具有相同的数据。例如: RollNo Name 1 Yoko 1 Yoko 1 Yoko 我只想要第三张唱片。如何识别此唯一记录?您可以使用DISTINCT返回的不同列组合 SELECT DISTINCT RollNo, Name FROM mytable 您可以使用DISTINC
RollNo Name
1 Yoko
1 Yoko
1 Yoko
我只想要第三张唱片。如何识别此唯一记录?您可以使用DISTINCT返回的不同列组合
SELECT DISTINCT RollNo, Name
FROM mytable
您可以使用DISTINCT返回的列的DISTINCT组合
SELECT DISTINCT RollNo, Name
FROM mytable
任何一行都是第三行:-
create table test
(
n int,
name varchar(30)
);
insert into test values(1,'yoko'),(1,'yoko'),(1,'yoko');
select ROW_NUMBER() over(order by name) as ordinal, * from test;
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = 3
删除第三行:-
create table test
(
n int,
name varchar(30)
);
insert into test values(1,'yoko'),(1,'yoko'),(1,'yoko');
select ROW_NUMBER() over(order by name) as ordinal, * from test;
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = 3
删除最后一行:
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = (select MAX(ordinal) from a)
任何一行都是第三行:-
create table test
(
n int,
name varchar(30)
);
insert into test values(1,'yoko'),(1,'yoko'),(1,'yoko');
select ROW_NUMBER() over(order by name) as ordinal, * from test;
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = 3
删除第三行:-
create table test
(
n int,
name varchar(30)
);
insert into test values(1,'yoko'),(1,'yoko'),(1,'yoko');
select ROW_NUMBER() over(order by name) as ordinal, * from test;
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = 3
删除最后一行:
with a as
(
select ROW_NUMBER() over(order by name) as ordinal, * from test
)
delete from a where a.ordinal = (select MAX(ordinal) from a)
什么版本的SQL Server?不管是2005+还是否,这都很重要。以及在无法区分重复行的情况下,如何确定最新的行是哪一行。它是第一行、第二行还是第三行是否重要?SQL Server的哪个版本?不管是2005+还是否,这都很重要。以及在没有可用于区分重复项的情况下如何确定最新的一行。重要的是它是第一行、第二行还是第三行?这就是我要做的,但这是SQL Server 2005+功能。无论如何,我会给出答案,最好是FGITW,而不是等待他的答案他使用的是什么版本,就我们所知,他可能正在使用最新版本-如果是SQL server 2000!谢谢,我得到了一个解决方案,用select ROW_NUMBER overorder by name作为ordinal,*从测试中我就是这么做的,但这是SQL Server 2005+的功能。不管怎样,我给出了答案,最好是FGITW,而不是等待他的答案他使用的是什么版本,据我们所知,他可能使用的是最新版本-如果是SQL server 2000!谢谢,我用select ROW_NUMBER overorder by name作为序号得到了解决方案,*来自testYes,这是真的。但问题是我只想要一张特定的唱片。使用DISTINCT会给我一条记录,但我不知道它是第一条、第二条还是第三条。是的,这是真的。但问题是我只想要一张特定的唱片。使用DISTINCT会给我一条记录,但我不知道它是第一条、第二条还是第三条记录。