在 Sql 服务器更新中查询
Query in Sql Server Update
我有两个table。
Table A
:
name empid city
-----------------------------------
Joesph Morgan JM2345 New york
Table B
:
name
--------------
Morgan, Joseph
现在我想在 B 中添加一个包含 empid
.
的列
我本可以根据姓名列加入 table,但格式的差异让我很难加入。
我首先将 table B 名称更改为名字姓氏格式,并在 B 中新创建的列 empid 中获取数据。
但是我不想改变数据的格式。
我采取了以下步骤。
Alter Table B
Add Empid varchar(10)
Update table B
set name=CONCAT(REPLACE(SUBSTRING([name], CHARINDEX(',', [name]), LEN([name])), ',', ''),' ',LEFT([name], CHARINDEX(',', [name]) - 1)
Update table B
set empid=A.empid
where B.name=A.name
请给我一个让名称列保持原样的方法。
如果我对你的情况理解正确,你想要你的 A-table 中的所有当前 empID 在你的 B-table 的新列中?
ALTER TABLE B
ADD empID varchar(10) NULL
因此您在 table B 中创建了一个新列,它允许 NULL(目前)
INSERT INTO B (empid)
SELECT empid
from A
这会将 A.empid 中的所有值插入 table B.empID
希望这对您有所帮助
试试这个.. FIDDLE DEMO
create table A(
name varchar(50),
empid varchar(50),
city varchar(50)
)
insert into A values('Joesph Morgan', 'JM2345', 'New york')
create table B(
empid varchar(50),
name varchar(50)
)
insert into B(name) values('Morgan,Joesph')
更新查询..
update B set B.empid=a.empid from B, A where
A.name=(Substring(b.name, Charindex(',',b.name)+1,len(b.name)) +' '+
Substring(b.name, 1,Charindex(',',b.name)-1)
)
我有两个table。
Table A
:
name empid city
-----------------------------------
Joesph Morgan JM2345 New york
Table B
:
name
--------------
Morgan, Joseph
现在我想在 B 中添加一个包含 empid
.
我本可以根据姓名列加入 table,但格式的差异让我很难加入。
我首先将 table B 名称更改为名字姓氏格式,并在 B 中新创建的列 empid 中获取数据。
但是我不想改变数据的格式。
我采取了以下步骤。
Alter Table B
Add Empid varchar(10)
Update table B
set name=CONCAT(REPLACE(SUBSTRING([name], CHARINDEX(',', [name]), LEN([name])), ',', ''),' ',LEFT([name], CHARINDEX(',', [name]) - 1)
Update table B
set empid=A.empid
where B.name=A.name
请给我一个让名称列保持原样的方法。
如果我对你的情况理解正确,你想要你的 A-table 中的所有当前 empID 在你的 B-table 的新列中?
ALTER TABLE B
ADD empID varchar(10) NULL
因此您在 table B 中创建了一个新列,它允许 NULL(目前)
INSERT INTO B (empid)
SELECT empid
from A
这会将 A.empid 中的所有值插入 table B.empID
希望这对您有所帮助
试试这个.. FIDDLE DEMO
create table A(
name varchar(50),
empid varchar(50),
city varchar(50)
)
insert into A values('Joesph Morgan', 'JM2345', 'New york')
create table B(
empid varchar(50),
name varchar(50)
)
insert into B(name) values('Morgan,Joesph')
更新查询..
update B set B.empid=a.empid from B, A where
A.name=(Substring(b.name, Charindex(',',b.name)+1,len(b.name)) +' '+
Substring(b.name, 1,Charindex(',',b.name)-1)
)