1

我最近在接受采访,评估我的人让我为以下场景写一个脚本。据他介绍,他从其他系统导入了一个数据库,其中包含一个名为Employees 的表。现在该表中有三列是 Emp_Name、Age 和 Salary,但该表没有 ID 列。他让我编写一个脚本,该脚本将在表中添加 ID 列,然后使用单个更新语句来更新具有顺序值的 ID 列(第一条记录从 1、2、3 开始)。我添加了 ID 列,但无法编写更新语句,即使一周过去了,我仍然无法弄清楚如何实现这一点。关于我应该如何去做的任何想法?

4

3 回答 3

1
UPDATE employees
SET id=(SELECT COUNT(*) FROM employees e2 WHERE e2.Emp_Name < e1.Emp_Name)+1
FROM employees e1

只有当失败(重复名称)时,我才会向子选择添加第二个条件,以添加年龄和可能的薪水以区分记录。

于 2013-07-15T07:40:39.483 回答
0

这是一个技巧问题。您无法从空中计算出实际的员工编号,因此此 ID 只是一个代理键。将您的新 ID 创建为 IDENTITY (SQL Server),它将为您填充。顺序无关紧要。

于 2013-07-15T07:44:24.680 回答
0
alter table Employees
add EmpID int Identity(1,1)

试试这个应该可以的。

于 2013-07-15T07:56:45.740 回答