Sql 在组中,如果记录超过1条,则为空。从输出中删除

Sql 在组中,如果记录超过1条,则为空。从输出中删除,sql,sql-server,Sql,Sql Server,在一组MFRNO、MFRNAME、MFRADDRESS和ZIPCODE中 若有两个电话号码,若其中一个为空(“”),则从结果中删除。 但是,如果组中只有一条记录,并且电话号码为空,则应将其保留在输出中 DECLARE @TABLE TABLE ( MFRNO VARCHAR(50), MFRNAME VARCHAR(50), MFRADDRESS VARCHAR(50), ZIPCODE VARCHAR(50), FIRSTPHONE VARCHAR(50) ) INSERT @T

在一组MFRNO、MFRNAME、MFRADDRESS和ZIPCODE中 若有两个电话号码,若其中一个为空(“”),则从结果中删除。 但是,如果组中只有一条记录,并且电话号码为空,则应将其保留在输出中

DECLARE @TABLE TABLE
(
MFRNO VARCHAR(50),  
MFRNAME  VARCHAR(50),
MFRADDRESS  VARCHAR(50),
ZIPCODE  VARCHAR(50),
FIRSTPHONE  VARCHAR(50)
)

INSERT @TABLE


SELECT '10008886',  'TIPMASTER LTD',        'RIGG APPROACH',        'E107ON',''  UNION ALL
SELECT '10008886',  'TIPMASTER LTD',        'RIGG APPROACH',        'E107ON',   '02085390611'UNION ALL
SELECT '10012227',  'CAR BODY',        'UNSHINAGH LANE',        'BT623RL',  ''   UNION ALL
SELECT '40045002',  'MANCHESTER',          'GROVE PARK',        'WA168QE',  ''   UNION ALL
SELECT '40045002',  'MANCHESTER',          'GROVE PARK',        'WA168QE',  '07967967404'

MFRNO   MFRNAME MFRADDRESS  ZIPCODE FIRSTPHONE
10008886    TIPMASTER LTD   RIGG APPROACH   E107ON  02085390611
10012227    CAR BODY    UNSHINAGH LANE  BT623RL 
40045002    MANCHESTER  GROVE PARK  WA168QE 07967967404
谢谢

Max应该这样做:

select MFRNO, MFRNAME, MFRADDRESS, ZIPCODE, MAX(FIRSTPHONE)
from @TABLE
group by MFRNO, MFRNAME, MFRADDRESS, ZIPCODE