【问题标题】:Update Query in sqlserver 2005在 sql server 2005 中更新查询
【发布时间】:2011-07-16 13:15:42
【问题描述】:

我需要编写一个更新查询,但我没有获得将数据从表 emp1 移动到 emp2 where city = 'blore' 的语法

table name -->Emp1
empID name  City 
1     aaa    chennai
2     xyz    blore
3     asds   chennai
4     vvv   blore
5     aaa   chennai
6     yyy   blore

table name -->Emp2
empID name  
1     aaa    
2     xyz    
3     asds   
4     vvv   
5     aaa   
6     yyy   

【问题讨论】:

  • 移动或更新,我无法理解您的真正意思?

标签: sql-server sql-server-2005


【解决方案1】:
INSERT INTO Emp2 (Name)
       SELECT Name FROM Emp1 WHERE City = 'blore'

DELETE FROM Emp1 WHERE City = 'blore'

【讨论】:

    【解决方案2】:

    实际的问题和期望的结果不是很清楚。我来猜一猜:

    UPDATE Emp2 
    SET Emp2.name = Emp1.name
    FROM Emp1
    INNER JOIN Emp2
    ON Emp1.empID = Emp2.empID
    WHERE Emp1.City = 'blore';
    

    您可以考虑添加一个额外的 WHERE 子句来限制实际更新,但您没有指定 name 在任一表中是否可以为空。所以可能是这个……

    AND Emp1.name <> Emp2.name
    

    ...或者它可能是这个...

    AND COALESCE(Emp1.name, 'some not possible natural value') 
     <> COALESCE(Emp2.name, 'some not possible natural value')
    

    ...或者您可能只需要一侧的 COALESCE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      相关资源
      最近更新 更多