sql server 2000返回在第一个表中但不在第二个表中的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2000返回在第一个表中但不在第二个表中的数据相关的知识,希望对你有一定的参考价值。
准确的说,我有两个表,第一个表中有10000条数据,第二个表中有5000个数据,两个表中有4000个数据是相同的。现在我要查询返回在第一个表中,但是不在第二个表中的6000个数据,怎样写语句
参考技术A Declare @字段1 类型1,@字段2 类型2Declare @i int
While(i<=6000)
i=i+1
Begin
SELECT @字段1=表1.字段1 @字段2=表1.字段2
FROM 表1
WHERE EXISTS(SELECT * FROM 表2 WHERE 表2.字段1==@字段1 表2.字段2==@字段2)
End 参考技术B Select *
From FirstTable
Where FirstTable.Key not in (Select Key From SecondTable )本回答被提问者采纳
???Sql Server???SQL SERVER ????????????
?????????int with ?????? serve span ?????? inner -- blog
??????:???Sql Server???SQL SERVER ??????????????????SQL SERVER 2005?????????????????????????????????????????????SQL SERVER 2005???????????????CTE?????????????????????CTE?????????????????????
??????CTE??????????????????Common Table Expression ???SQL SERVER 2005????????????????????????????????????
#??????????????????
1???sql
1 Create table GroupInfo([Id] int,[GroupName] nvarchar(50),[ParentGroupId] int) 2 3 Insert GroupInfo 4 5 select 0,??????????????????,null union all 6 7 select 1,??????????????????,0 union all 8 select 2,??????????????????,1 union all 9 select 3,??????????????????,1 union all 10 select 4,????????????????????????,2 union all 11 select 5,????????????????????????,2 union all 12 select 6,????????????????????????,3 union all 13 select 7,????????????????????????,3 union all 14 15 select 8, ???????????????,0 union all 16 select 9, ?????????????????????,8 union all 17 select 10,????????????????????????,8 union all 18 select 11,???????????????????????????,9 union all 19 select 12,???????????????????????????,9 union all 20 select 13,??????????????????????????????,10 union all 21 select 14,??????????????????????????????,10
2????????????
#????????????Demo
1???????????????????????????????????????????????????,???????????????????????????
1 --???????????????????????????????????????????????? 2 with 3 CTE 4 as 5 ( 6 select * from GroupInfo where Id=1 7 union all 8 select G.* from CTE inner join GroupInfo as G 9 on CTE.Id=G.ParentGroupId 10 ) 11 select * from CTE order by Id
1 --???????????????????????????????????????????????? 2 with 3 CTE 4 as 5 ( 6 select * from GroupInfo where Id=14 7 union all 8 select G.* from CTE inner join GroupInfo as G 9 on CTE.ParentGroupId=G.Id 10 ) 11 select * from CTE order by Id
2?????????????????????
1 --?????????????????? 2 with 3 CTE 4 as 5 ( 6 select Id,GroupName,ParentGroupId,GroupPath=CAST( GroupName as nvarchar(max)) from GroupInfo where Id=1 7 union all 8 select G.*,CAST(CTE.GroupPath+???//???+G.GroupName as nvarchar(max)) as GroupPath from CTE 9 inner join GroupInfo as G 10 on CTE.Id=G.ParentGroupId 11 ) 12 select * from CTE
3?????????????????????????????????????????????????????????
1 --??????id????????????????????????????????????sort??????????????????sort?????????????????????????????????????????????????????? 2 WITH 3 CTE 4 AS 5 ( 6 SELECT * ,CAST(RIGHT(???000??? + CAST([Id] AS VARCHAR), 3) AS VARCHAR(MAX)) AS sort FROM GroupInfo 7 WHERE ParentGroupId = 0 8 UNION ALL 9 SELECT GroupInfo.* ,CAST(sort + RIGHT(???000??? + CAST(GroupInfo.[Id] AS VARCHAR),3) AS VARCHAR(MAX)) AS sort 10 FROM CTE 11 INNER JOIN GroupInfo ON CTE.Id = GroupInfo.ParentGroupId 12 ) 13 SELECT * FROM CTE ORDER BY sort
4?????????????????????????????????????????????????????????
1 --?????????????????? 2 WITH CTE AS ( 3 SELECT *,1 AS [Level] FROM GroupInfo WHERE ParentGroupId=0 4 UNION ALL 5 SELECT G.*,CTE.Level+1 FROM GroupInfo as G 6 JOIN CTE ON CTE.Id =G.ParentGroupId 7 ) 8 SELECT * FROM CTE
以上是关于sql server 2000返回在第一个表中但不在第二个表中的数据的主要内容,如果未能解决你的问题,请参考以下文章