比如有两张表A和B
表A如下:
客户拼音 客户简称
NY 农业
JS 建设
表B如下:
客户代码 客户全称 客户拼音
101 中国农业银行 null
102 中国建设银行 null我要通过表A和表B链接把表A的客户拼音更新到表B中去。或者用什么办法可以做到。
得到更新表B的结果如下:客户代码 客户全称 客户拼音
101 中国农业银行 NY
102 中国建设银行 JS
表A如下:
客户拼音 客户简称
NY 农业
JS 建设
表B如下:
客户代码 客户全称 客户拼音
101 中国农业银行 null
102 中国建设银行 null我要通过表A和表B链接把表A的客户拼音更新到表B中去。或者用什么办法可以做到。
得到更新表B的结果如下:客户代码 客户全称 客户拼音
101 中国农业银行 NY
102 中国建设银行 JS
-- Author :SQL77(只为思齐老)
-- Date :2010-01-13 14:47:05
-- Version:
-- Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
-- Aug 6 2000 00:57:48
-- Copyright (c) 1988-2000 Microsoft Corporation
-- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[A]
if object_id('[A]') is not null drop table [A]
go
create table [A]([客户拼音] varchar(2),[客户简称] varchar(4))
insert [A]
select 'NY','农业' union all
select 'JS','建设'
--> 测试数据:[B]
if object_id('[B]') is not null drop table [B]
go
create table [B]([客户代码] int,[客户全称] varchar(12),[客户拼音] Varchar(12))
insert [B]
select 101,'中国农业银行',null union all
select 102,'中国建设银行',null
--------------开始查询--------------------------UPDATE B SET 客户拼音=A.客户拼音 FROM A,B WHERE CHARINDEX(A.客户简称,B.客户全称)>0
SELECT * FROM B
----------------结果----------------------------
/* (所影响的行数为 2 行)
(所影响的行数为 2 行)
(所影响的行数为 2 行)客户代码 客户全称 客户拼音
----------- ------------ ------------
101 中国农业银行 NY
102 中国建设银行 JS(所影响的行数为 2 行)
*/
-- Author :fredrickhu(我是小F,向高手学习)
-- Date :2010-01-13 14:47:16
-- Version:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[A]
if object_id('[A]') is not null drop table [A]
go
create table [A]([客户拼音] varchar(2),[客户简称] varchar(4))
insert [A]
select 'NY','农业' union all
select 'JS','建设'
--> 测试数据:[B]
if object_id('[B]') is not null drop table [B]
go
create table [B]([客户代码] int,[客户全称] varchar(12),[客户拼音] sql_variant)
insert [B]
select 101,'中国农业银行',null union all
select 102,'中国建设银行',null
--------------开始查询--------------------------
update
b
set
客户拼音=a.客户拼音
from
a,b
where
charindex(a.客户简称,b.客户全称)>0
select * from b
----------------结果----------------------------
/* 客户代码 客户全称 客户拼音
----------- ------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
101 中国农业银行 NY
102 中国建设银行 JS(2 行受影响)
*/
b
set
客户拼音=a.客户拼音
from
a,b
where
charindex(a.客户简称,b.客户全称)>0