有字符串 ‘123,456,789’ 与 ‘aa,bb’ 需要插入到表
tmp中 其中字段为 [number],[char]
插入的规则就是笛卡尔积,也就是 数字有三条 字符两个,那么一共是插入六行输入
123,aa
123,bb
456,aa
456,bb
789,aa
789,bb
请问如何做。
现在假设已经有字符串拆分函数dbo.fn_StrSplitToTable(str,split) //需要拆分的str ,根据 split拆。
返回一张拆分后的表
如select * from dbo.fn_StrSplitToTable('123,456,789',',')
123
456
789
------解决思路----------------------
INSERT INTO tmp
SELECT * FROM
(select * from dbo.fn_StrSplitToTable('123,456,789',',') )T1,
(select * from dbo.fn_StrSplitToTable('aa,bb',',') )T2
------解决思路----------------------
insert into TABLE
select * from dbo.fn_StrSplitToTable('123,456,789',',') ,(select 'aa' b union all select 'bb')t2
--------------------------------------------------------------------------------
;with tab(a) as(
select 123 union all
select 456 union all
select 789
)select * from tab,(select 'aa' b union all select 'bb')t2 order by a
123 aa
123 bb
456 aa
456 bb
789 aa
789 bb
------解决思路----------------------
假设拆分后各自返回的表是A和B,
INSERT INTO tmp
SELECT A.字段名+B.字段名 FROM A,B