2个SQL语句的区别

来源:互联网 发布:手机点击类软件 编辑:程序博客网 时间:2024/05/16 17:49

方法一:

DECLARE @r varchar(8000)

SET @r = ''

select @r=@r+'/'+ (select entCode from FDAEnterprise where EntID=entperJob.entid) from EntPerJob where PerID=21885

print @r

 

方法二:

DECLARE @r varchar(8000)

SET @r = ''

select @r=@r+'/'+ temp.entCode from (select entCode from FDAEnterprise where EntID in (select EntID from EntPerJob where PerID=21885)) temp

print @r

区别?

 

结果一:

/0201000032/0201000032/0201000032/0201000032/0102000016  有重复

 

结果二:

/0102000016/0201000032    无重复

 

 

 

 

方法1:

select temp.pharmacisttypeid,count(*) as num from ( select pharmacisttypeid from JobNameAndPharmacistTypeRelation b
inner join
(select jobid from entperjob where entid=5 ) a 
on b.jobid=a.jobid where b.fdaid=101) temp
group by temp.pharmacisttypeid

消除重复

 

方法2:

select temp.pharmacisttypeid,count(*) as num from ( select * from JobNameAndPharmacistTypeRelation
where jobid in (select jobid from entperjob where entid=5) and fdaid=101) temp group by temp.pharmacisttypeid

有重复