根据多个条件更新MSSQL表中的单个列

时间:2018-01-26 19:26:57

标签: sql sql-server sql-update

我试图更新表格:

UPDATE Table_name
SET start_date = '12/12/2015' where employee_number = 111111    

但我需要根据employee_number修改数百个start_dates。

UPDATE Table_name
SET start_date = '12/12/2015' where employee_number = 111111  
SET start_date = '01/05/2015' where employee_number = 111112 
etc....

对于像我这样的简单条件,sql是否有更新表的首选方法?

2 个答案:

答案 0 :(得分:2)

我猜你在分隔的表格(或文件)中有这些日期。如果你不这样做,那就去创造吧。

然后加入两个表

 UPDATE t
 SET t.start_date  = s.start_date 
 FROM Table_name t
 JOIN sourceTable s
  ON t.employee_number = s.employee_number 

答案 1 :(得分:0)

新答案

我刚刚看到您的评论,即数据来自电子表格。如果这是一次性更改,那么您可以将电子表格加载到SSMS中的表中并直接从那里更新

update table_name
    set table_name.start_date = excel_table.start_date
from table_name
join excel_table
    on excel_table.employee_id = table_name.employee_ie

原始答案

你有一个模棱两可的问题。每个用户是否都拥有自己的特殊日期?您能否以编程方式确定需要更新的用户?

如果是这样,你可以这样做:

update table_name
set start_date = date_table.date
from table_name
join user_table
    on user_table.employee_number = table_name.employee_number 
join date_table
    on -- <date table join>
where
    -- filter users and dates here