C# 使用SQL Server使用表2值更新表1

C# 使用SQL Server使用表2值更新表1,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我想用table2手机号更新table1,table1和table2中的公共列是name,但table1 name与initial混合,table2只有name 谁能告诉我如何更新表1 我试过这个: update table1 set table1.mobile = table2.mobile from table1 join table2 on table1.name = table2.name 表1 Name Mobile abc 123 def 456 表2 Name

我想用table2手机号更新table1,table1和table2中的公共列是name,但table1 name与initial混合,table2只有name

谁能告诉我如何更新表1

我试过这个:

update table1 
set table1.mobile = table2.mobile 
from table1 
join table2 on table1.name = table2.name
表1

Name    Mobile
abc 123
def 456
表2

Name    Mobile
abc  x  null
def  Y  Null
我想在table2 mobile中更新table1 mobile

我试过了 更新table1设置table1.mobile=table2.mobile from table1
将table2连接到table1上。name=table2.name

您可以使用子查询来完成此操作

update table1 set table1.mobile = (select TOP 1 table2.mobile from table2 where table2.name = substring(table1.name, 0, charindex(' ', table1.name)))
编辑:


我在列值的第一个字上做了一个子字符串。“anil y”现在将是“anil”。

您可以尝试以下操作:

Create table #table1
(
name varchar(10),
mobile int
)
insert into #table1 values ('Anil', 123)
insert into #table1 values ('abc', 888)
insert into #table1 values (NULL, 321)

Create table #table2
(
name varchar(10),
mobile int
)
insert into #table2 values ('Anil y', NULL)
insert into #table2 values ('z abc', NULL)
insert into #table2 values (NULL, NULL)

Update #table2
Set #table2.mobile = #table1.mobile
from #table2, #table1
Where charindex(#table1.name, #table2.name) > 0

Select * from #table2
输出:

Anil y  123
z abc   888
NULL    NULL

向我们展示您的data.table1列(姓名:anil,手机号码:123);表2列(姓名:anil y,手机号码:null)编辑您的问题并包含所有相关数据/信息。实际问题是什么?你有错误吗?张贴它。你有没有得到一个意想不到的结果?请解释一下,我希望您在问题
中遗漏了这一点。表1名称与初始名称混合,表2只有名称
,谢谢您的快速回答,但它正在更新表中的所有行,但我想更新表中与这两个名称匹配的单行tables@un-幸运的是,我错过了它,所有行都显示相同的数字