相关疑难解决方法(0)

2648
推荐指数
39
解决办法
273万
查看次数

如何删除重复的行?

从相当大的SQL Server表中删除重复行的最佳方法是什么(即300,000多行)?

当然,由于RowID身份字段的存在,行不会是完美的重复.

MyTable的

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server duplicates

1254
推荐指数
31
解决办法
118万
查看次数

使用左连接选择一对多关系中的第一条记录

我正在尝试使用左连接来连接两个表.结果集必须只包含"右"连接表中的第一条记录.

可以说我有两张表A和B如下;

表"A"

code | emp_no

101  | 12222
102  | 23333
103  | 34444
104  | 45555
105  | 56666
Run Code Online (Sandbox Code Playgroud)

表"B"

code | city       | county
101  | Glen Oaks  | Queens
101  | Astoria    | Queens
101  | Flushing   | Queens
102  | Ridgewood  | Brooklyn
103  | Bayside    | New York
Run Code Online (Sandbox Code Playgroud)

预期产出:

code | emp_no | city      | county
101  | 12222  | Glen Oaks | Queens
102  | 23333  | Ridgewood | Brooklyn
103  | 34444 …
Run Code Online (Sandbox Code Playgroud)

sql left-join

42
推荐指数
5
解决办法
7万
查看次数

如何在sql server中获取行的行ID

我有一个表CSBCA1_5_FPCIC_2012_EES207201222743,有两列employee_idemployee_name

我使用了以下查询

SELECT ROW_NUMBER() OVER (ORDER BY EMPLOYEE_ID) AS ID, EMPLOYEE_ID,EMPLOYEE_NAME 
FROM CSBCA1_5_FPCIC_2012_EES207201222743 
Run Code Online (Sandbox Code Playgroud)

但是,它按照升序返回行employee_id,但我需要按顺序将行插入表中.

sql sql-server-2005 rowid

8
推荐指数
2
解决办法
10万
查看次数

删除没有唯一标识符的重复行

我在表中有一些看起来大致如下的数据:

table stockData
(
tickId int not null,
timestamp datetime not null,
price decimal(18,5) not null
)
Run Code Online (Sandbox Code Playgroud)

tickId和timestamp都不是唯一的,但tickId和timestamp的组合应该是唯一的.

我的表中有一些重复的数据,我正试图将其删除.但是,我得出的结论是,给定的数据没有足够的信息让我从另一行中辨别出一行,而且我基本上没办法删除其中一个重复的行.我的猜测是我需要引入一些标识列,这将帮助我识别另一行的一行.

这是正确的,还是有一些神奇的方法可以用查询删除一个但不是两个重复数据?

EDIT编辑以澄清tickId和timestamp组合应该是唯一的,但这不是因为重复的数据.

sql sql-server

6
推荐指数
1
解决办法
1万
查看次数

使用唯一索引但没有主键在SQL Server中创建表有什么影响?

这个问题来自我的部门内部讨论,关于制作一个简单的多对多交叉引用表的最佳方法,该表只包含两列,这些列本身就是其他表中的主键.

是否有人有具体证据支持或反对创建具有单个唯一索引但没有主键的表?(替代方案详述如下).

换句话说:有没有人(尤其是MSFT人员)知道SQL Server内部唯一地识别具有主键的行a)和b)没有主键的行?

详细说明:

给定输入表:

CREATE TABLE Foo ( FooID bigint identity(1,1) not null primary key, other stuff... )
CREATE TABLE Bar ( BarID bigint identity(1,1) not null primary key, other stuff... )
Run Code Online (Sandbox Code Playgroud)

三个基本选项是(在所有情况下都假设在FooIDBarID列上创建了一个外键):

-- Option 1: Compound primary key
CREATE TABLE FooBarXRef ( 
    FooID bigint not null
  , BarID bigint not null
  , PRIMARY KEY ( FooID, BarID )
  , CONSTRAINT FK... etc
)

-- Option 2: Independent primary key + unique index …
Run Code Online (Sandbox Code Playgroud)

sql-server primary-key

5
推荐指数
1
解决办法
914
查看次数

SQL中如何删除重复记录?

这是我原来的表:

在此输入图像描述

预期表:

在此输入图像描述

我无法向表中添加新列。

sql sql-server

-5
推荐指数
1
解决办法
1万
查看次数