日期:2014-05-18 浏览次数:20507 次
--原始数据:@A declare @A table(id varchar(1),soft_name varchar(12),company varchar(9)) insert @A select 'A','office 2000','microsoft' union all select 'A','mcafee agent','mcafee' union all select 'A','vnc33','vnc' union all select 'A','qq2007','qq' union all select 'A','game1','game1' union all select 'A','game2','game2' union all select 'B','office 2003','microsoft' union all select 'B','vnc4.0','vnc' union all select 'B','mcafee8i','mcafee' union all select 'B','microsoft','microsoft' union all select 'B','game3','game3' --原始数据:@B declare @B table(id int,name varchar(9)) insert @B select 1,'office' union all select 2,'mcafee' union all select 3,'vnc' union all select 4,'microsoft' select * from @A a where not exists (select 1 from @B where charindex(name,a.soft_name)>0) /* id soft_name company ---- ------------ --------- A qq2007 qq A game1 game1 A game2 game2 B game3 game3 */
------解决方案--------------------
declare @a table(id varchar(2), soft_name varchar(20) , company varchar(20)) insert @a select 'A', 'office 2000', 'microsoft' union all select 'A', 'mcafee agent', 'mcafee' union all select 'A', 'vnc33', 'vnc' union all select 'A', 'qq2007', 'qq' union all select 'A', 'game1', 'game1' union all select 'A', 'game2', 'game2' union all select 'B', 'office 2003', 'microsoft' union all select 'B', 'vnc4.0', 'vnc' union all select 'B', 'mcafee8i', 'mcafee' union all select 'B', 'microsoft', 'microsoft' union all select 'B', 'game3', 'game3' declare @b table(id int, name nvarchar(20)) insert @b select 1, 'office' insert @b select 2, 'mcafee' insert @b select 3, 'vnc' insert @b select 4, 'microsoft' --或用patindex/charindex select a.* from @a a where not exists(select 1 from @b where patindex( '%'+Name+'%',a.soft_name)>0 ) id soft_name company ---- -------------------- -------------------- A qq2007 qq A game1 game1 A game2 game2 B game3 game3
------解决方案--------------------
select a.* from @a a where not exists(select 1 from @b where a.soft_name like '%'+Name+'%' )