I am testing MySQL and using NULL String concat to find the best record. Since LENGTH (NULL || 'data) is 0. Only if the entire column is not NULL does some length exist. Perhaps this is not perfect.
create table EmployeeMaster ( Record int auto_increment, FirstName varchar(50), LastName varchar(50), EmployeeNumber int, CompanyNumber int, StatusFlag int, UserName varchar(50), Branch varchar(50), PRIMARY KEY(record) ); INSERT INTO EmployeeMaster ( FirstName, LastName, EmployeeNumber, CompanyNumber, StatusFlag, UserName, Branch ) VALUES ('Jake', 'Jones', 1234, 1, 1, 'JJONES', 'PHX'), ('Jake', 'Jones', 1234, 1, 1, NULL, 'PHX'), ('Jake', 'Jones', 1234, 1, 1, NULL, NULL), ('Jane', 'Jones', 5678, 1, 1, 'JJONES2', NULL);
My query idea looks like
SELECT e.* FROM employeemaster e JOIN ( SELECT firstname, lastname, employeenumber, companynumber, statusflag, MAX( LENGTH ( username || branch ) ) data_quality FROM employeemaster GROUP BY firstname, lastname, employeenumber, companynumber, statusflag HAVING count(*) > 1 ) g ON LENGTH ( username || branch ) = g.data_quality