表一:
序号,资源名
---------------
table1
xh zym
1 资源1
2 资源2
3 资源3
4 资源4
5 资源5
6 资源6表二:
员工名,资源名
-----------------
table2
ygm zym
李明 资源4
李明 资源6问题:
查询表一、表二想得到下边的结果(如果表二中员工李明有表一中得资源就标记为1没有标记为0)
xh zym 标记
1 资源1 0
2 资源2 0
3 资源3 0
4 资源4 1
5 资源5 0
6 资源6 1
序号,资源名
---------------
table1
xh zym
1 资源1
2 资源2
3 资源3
4 资源4
5 资源5
6 资源6表二:
员工名,资源名
-----------------
table2
ygm zym
李明 资源4
李明 资源6问题:
查询表一、表二想得到下边的结果(如果表二中员工李明有表一中得资源就标记为1没有标记为0)
xh zym 标记
1 资源1 0
2 资源2 0
3 资源3 0
4 资源4 1
5 资源5 0
6 资源6 1
create table table1(xh int identity(1,1),zym nvarchar(32))
create table table2(ygm nvarchar(12),zym nvarchar(32))insert table1 select N'资源1' union
select N'资源2' union
select N'资源3' union
select N'资源4' union
select N'资源5' union
select N'资源6'
insert table2
select N'李明',N'资源4' union
SELECT N'李明',N'资源6'
SELECT A.*,CASE WHEN ygm IS NULL THEN 0 ELSE 1 END AS BIAOJI
FROM table1 A LEFT JOIN table2 B ON A.zym =B.zym
/*
xh zym BIAOJI
1 资源1 0
2 资源2 0
3 资源3 0
4 资源4 1
5 资源5 0
6 资源6 1*/
--> 测试数据:[表一]
if object_id('[表一]') is not null drop table [表一]
create table [表一]([xh] int,[zym] varchar(5))
insert [表一]
select 1,'资源1' union all
select 2,'资源2' union all
select 3,'资源3' union all
select 4,'资源4' union all
select 5,'资源5' union all
select 6,'资源6'
--> 测试数据:[表二]
if object_id('[表二]') is not null drop table [表二]
create table [表二]([ygm] varchar(4),[zym] varchar(5))
insert [表二]
select '李明','资源4' union all
select '李明','资源6'select *,
case when exists (select 1 from [表二] b where a.zym=b.zym
and b.ygm='李明') then 1 else 0 end as bj
from [表一] a--如果说不是仅仅是李明
select *,
case when exists (select 1 from [表二] b where a.zym=b.zym
) then 1 else 0 end as bj
from [表一] a
/*
xh zym bj
1 资源1 0
2 资源2 0
3 资源3 0
4 资源4 1
5 资源5 0
6 资源6 1
*/
union
select a.*,标记=0 from table1 a where a.zym not in(select c.zym from table1 c,Table2 d where c.zym=d.zym)