请高手留步帮忙解决,多谢!!SQL中有两个表,即企业表corp_tab和职位表job_tab
此SQL语句SELECT bid, Name, dbo.f_getjobNamesBybid(bid) AS jobName FROM corp_tab WHERE VIP = 2 OR VIP = 3 OR VIP = 4 and bid>0  order by isTop desc
其中dbo.f_getjobNamesBybid(bid)是一个自定义函数,里面的查询语句为
SELECT S.jobName,S.bid Jbid,S.corp_bid Cbid FROM dbo.job_tab S LEFT JOIN dbo.corp_tab C ON C.bid=S.corp_bid WHERE C.bid=@bid  order by S.PubDate desc以上调用自定义函数来查出的结果为:显示所有企业的数据(包括jobName为NULL值的数据)。
但为了使显示数据有效可观,我不想显示jobName为NULL值的数据,这样,我应该在哪里处理,语句应该如何改呢?

解决方案 »

  1.   

    试一试这个SELECT c.bid, c.Name, s.JobName
    FROM corp_tab cright join dbo.job_tab S
    on C.bid=S.corp_bid WHERE c.VIP = 2 OR c.VIP = 3 OR c.VIP = 4 and c.bid>0 and s.JobName is not null
    order by c.isTop desc 
      

  2.   

    select * from job_tab S left join corp_tab C on ON C.bid=S.corp_bid where s.jobName is not null and 
    C.VIP in(2,3,4) and C.bid>0  
      

  3.   

    SELECT bid, Name, dbo.f_getjobNamesBybid(bid) AS jobName FROM corp_tab WHERE VIP = 2 OR VIP = 3 OR VIP = 4 and bid>0 AND dbo.f_getjobNamesBybid(bid) IS NOT NULL order by isTop desc 
      

  4.   

    楼上兄台,你的语句是可以去掉JobName为空值的情况,但同时却产生了另样的问题,我原来是一对多转化一对一的显示关系(即一个企业ID对应N个职位同时显示在一行上的),如果换成你的语句后,那我SQL上自定义函数dbo.f_getjobNamesBybid(bid) 也就没用上了,自然显示数据就会出现一个职位对应一个企业,这样就可能产生不同的职位对应的同一个企业时都会分开来显示,而不是显示在同一行上了。
      

  5.   

    函数里面RETURN的时候用ISNULL函数过滤