• This seems to work... If you post consumable data (create table scripts, and inserts), it's a lot easier for people to help you - since you've set up the problem for them. Then they can just bang out a solution easily. Like you see below. (you could copy the whole thing into a query window and run it and set up the problem). Makes helping you much easier.

    use tempdb;

    go

    create table Contact(

    empID int,

    email varchar(30),

    seq tinyint);

    go

    insert into Contact(empID,email,seq)

    values (1,'t@t.com',1),(1, 's@s.com', 2),

    (2, 'q@.com', 1),

    (2, 'q@.com', 2),

    (3, 'z@te.com', 1),

    (3, 'Z@e.com', 2);

    insert into Contact(empID,email,seq)

    values (4,'b@te.com',2);

    insert into Contact(empID,email,seq)

    values (5, null,1),(5,'fifth@gin.com',2);

    SELECT e1.EmpID, seq, email

    FROM

    -- get the first non-null sequence # where the email is not empty

    (SELECT EmpID, MIN(seq) As MinSeq

    FROM contact

    WHERE email IS NOT NULL

    GROUP BY EmpID) e1

    INNER JOIN

    -- join back to another copy of the table and retrieve what we want

    (SELECT EmpID, seq, email

    FROM contact) e2

    -- use the join to do the filtering...

    ON e1.empid=e2.empid

    AND e1.minseq = e2.seq;

    There's probably a neater way of doing this, but it's late and my brain is fried... but it works.