SSIS “查找组件” 查找范围内的数据.
我们知道.使用查询组件,可以查找相等的数据.
比如.我现在的数据是’liang’我要查另一个表中.外键列的值等于liang的其它列的信息.
这时候.我们只要将列映射一下即可.
但是,如果要查某个范围内的数据.则简单的这样关联列.就不可以了.
比如看这个例子.
CREATE TABLE tb1(ID int PRIMARY KEY,col decimal(10,2))
INSERT tb1 SELECT 1 ,26.21
UNION ALL SELECT 2 ,88.19
UNION ALL SELECT 3 , 4.21
UNION ALL SELECT 4 ,76.58
UNION ALL SELECT 5 ,58.06
UNION ALL SELECT 6 ,53.01
UNION ALL SELECT 7 ,18.55
UNION ALL SELECT 8 ,84.90
UNION ALL SELECT 9 ,95.60
CREATE TABLE tb2(ID INT IDENTITY PRIMARY KEY,Mindata decimal(10,2),
Maxdata decimal(10,2),Description varchar(20))
INSERT tb2(MinData,MaxData,Description)
SELECT null,30,'<30' UNION ALL
SELECT 30,60,'>=30 AND <60' UNION ALL
SELECT 60,70,'>=60 AND <70' UNION ALL
SELECT 70,80,'>=70 AND <80' UNION ALL
SELECT 80,90,'>=80 AND <90' UNION ALL
SELECT 90,null,'>=90'
tb1表中id为1的col小于30,所以它在tb2找到的数据是’<30’
如此类推.
这样的查找.”查找组件”绝对可以完成.
1.在”数据流”中,设置好oledb数据源,在此,数据源的设置不再详说.此数据源的源表是tb1
2.添加一个查找组件.并将数据源的绿色工作流指向此查找组件.
3.双击查找组件.进入查找组件编辑器.在”引用表”中.选择tb2
5.进入”高级”选项卡.选中”启用内存限制”.并选中”修改SQL语句”.
并将SQL语句修改如下:
select * from
(select * from [dbo].[tb2]) as refTable
where (? < Maxdata OR Maxdata IS NULL) AND (? >= Mindata OR Mindata IS NULL)
6.点击”参数”按钮.两个参数的输入都为col
7.完成查找组件的设置.再设置目标.即可.
4.再进入”列”设置映射关系以及输出列Description
最新评论