如题:
SELECT b.zpzw,a.pname,a.qyname, a.qyfrom 
FROM Company_Basemeans AS a LEFT OUTER JOIN invite_info AS b 
ON a.qyname = b.qyname2
where (b.zpzw like'%文案%' or a.qyname like'%传媒%') 
order by b.uptime现在输出时a.qyname会有重复的记录
我想只要其中的一条怎么处理好呢
这样写distinct(a.qyname)是无效的,杯具

解决方案 »

  1.   


    ;with t as (
    SELECT b.zpzw,a.pname,a.qyname, a.qyfrom,b.uptime,
    row_number() over (partiton by a.qyname order by b.zpzw) rn
    FROM Company_Basemeans AS a LEFT OUTER JOIN invite_info AS b  
    ON a.qyname = b.qyname2
    where b.zpzw like'%文案%' or a.qyname like'%传媒%'
    )
    select zpzw,pname,qyname,qyform 
    from t
    where rn=1
    order by uptime;
      

  2.   

    with t as 
    (
    select a.qyname from 
    (
    SELECT b.zpzw,a.pname,a.qyname, a.qyfrom  
    FROM Company_Basemeans AS a LEFT OUTER JOIN invite_info AS b  
    ON a.qyname = b.qyname2
    where (b.zpzw like'%文案%' or a.qyname like'%传媒%')  
    order by b.uptime
    ) a
    )
    select distinct qyname from t