用另一个表sql

时间:2018-04-25 21:49:02

标签: sql sql-server-2014

使用SQL Server 2014,如何使用另一个表中的值替换表中的值(需要编码)。

我有两张桌子:

  1. Coo数据表800记录(有拼写错误的国家/地区名称或其他信息)

    id   response
    --------------------------
    1    Saudi
    2    Honderas born 1992
    3    Argentina%
    4    Ecuadar
    
  2. 国家/地区表56记录(正确的国家/地区名称)

    Country
    ----------------------
    Saudi Arabia
    Honduras
    Argentina
    Ecuador 
    
  3. 所以我试着只使用前4个字符

      SELECT LEFT(country, 4) AS Short4 
      FROM Countries;   
    

    输出:

    Short4
    --------
    saud
    Hond
    arge
    Ecua
    

    所以我想要的是 如果“响应列”中的任何值包含“short4列”,则将其替换为“country column”

    中的值

    所需表:在响应列中应该只包含正确的国家/地区名称,而不包含任何其他值

    id    response
    ------------------
     1    Saudi Arabia
     2    Honduras
     3    Argentina
     4    Ecuador
    

2 个答案:

答案 0 :(得分:0)

这很奇怪。我想你是在寻找:

speed_test

显然有些地方不起作用 - 比如" USA"在国家名称为#34;美利坚合众国"。

的回复中

答案 1 :(得分:0)

以下查询应匹配4个字符的表格,如果匹配则更新Coo表格中的响应字段。

UPDATE Coo
   SET Response = c.Country
  FROM Coo x
  JOIN Countries c ON x.Response LIKE '%'+LEFT(c.Country,4)+'%'