一道题求教^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A
ApplyID DeviceID DeviceName DeviceNum DeviceNO
---------- ----------- ----------------------------------------
5443 6 高端配置 2 AA0001,BB0001
5444 7 高端配置 3 BB0002,CC0001,CC0002
B
DeviceNO DeviceName
-------------------------------------------------- ---------------------
AA0001 高配置笔记本
AA0002 低配置笔记本
BB0001 高配置台式机
BB0002 低配置台式机
CC0001 彩色打印机
CC0002 一般打印机
C
DeviceNO DeviceID ApplyUseID ApplyReturnID
------------ ----------- ----------- -------------
AA0001 6 5443 null
BB0001 6 5443 null
BB0002 7 5444 null
CC0001 7 5444 null
CC0002 7 5444 null
将A表与B表有关联的数复制到C表中 结果如C表所示(注A表中DeviceNO字段不固定)
[解决办法]
Create Table A
(ApplyIDChar(4),
DeviceIDInt,
DeviceNameNvarchar(20),
DeviceNumInt,
DeviceNOVarchar(100))
Insert A Select '5443 ', 6, N '高端配置 ', 2, 'AA0001,BB0001 '
Union All Select '5444 ', 7, N '高端配置 ', 3, 'BB0002,CC0001,CC0002 '
Create Table B
(DeviceNOVarchar(20),
DeviceNameNvarchar(50))
Insert B Select 'AA0001 ', N '高配置笔记本 '
Union All Select 'AA0002 ', N '低配置笔记本 '
Union All Select 'BB0001 ', N '高配置台式机 '
Union All Select 'BB0002 ', N '低配置台式机 '
Union All Select 'CC0001 ', N '彩色打印机 '
Union All Select 'CC0002 ', N '一般打印机 '
Create Table C
(DeviceNOVarchar(20),
DeviceIDInt,
ApplyUseIDChar(4),
ApplyReturnIDVarchar(10))
GO
--插入
Insert C
Select
B.DeviceNO,
A.DeviceID,
A.ApplyID,
null As ApplyReturnID
From
A
Inner Join
B
On CharIndex(B.DeviceNO, A.DeviceNO) > 0
Select * From C
GO
Drop Table A, B, C
--Result
/*
DeviceNODeviceIDApplyUseIDApplyReturnID
AA000165443NULL
BB000165443NULL
BB000275444NULL
CC000175444NULL
CC000275444NULL
*/