There are not many easy ways to go about what you're asking without resorting to the use of dynamic SQL; however, here is one way you might try.
Note: I've made some assumptions about your data, namely, that badgenum is a value that ties dependents to employees.
/* Mock-up table and data */
DECLARE @Data table (
firstname varchar(50), lastname varchar(50), bcode varchar(3), boption varchar(50), isdependent varchar(1), crelationship varchar(10), clastname varchar(50), cfirstname varchar(50), badgenum int
);
INSERT INTO @Data (
firstname, lastname, bcode, boption, isdependent, crelationship, cfirstname, clastname, badgenum
) VALUES
( 'BigBird', 'Street', 'VIS', 'Employee+Family', 'Y', 'Child', 'Bert', 'Street', 1234 ),
( 'BigBird', 'Street', 'VIS', 'Employee+Family', 'Y', 'Child', 'Ernie', 'Street', 1234 ),
( 'Oscar', 'TheGrouch', 'VIS', 'EmployeeOnly', 'N', NULL, NULL, NULL, 9090 );
/* Select employees with dependents listed linearly */
;WITH emp AS (
SELECT DISTINCT
firstname, lastname, bcode, badgenum
FROM @Data
)
SELECT
firstname,
lastname,
bcode,
dep.dep_xml.value( 'data(//dependents/dependent[@id="1"]/lname)[1]', 'varchar(50)' ) AS [Dependent 1LN],
dep.dep_xml.value( 'data(//dependents/dependent[@id="1"]/fname)[1]', 'varchar(50)' ) AS [Dependent 1FN],
dep.dep_xml.value( 'data(//dependents/dependent[@id="2"]/lname)[1]', 'varchar(50)' ) AS [Dependent 2LN],
dep.dep_xml.value( 'data(//dependents/dependent[@id="2"]/fname)[1]', 'varchar(50)' ) AS [Dependent 2FN],
dep.dep_xml.value( 'data(//dependents/dependent[@id="3"]/lname)[1]', 'varchar(50)' ) AS [Dependent 3LN],
dep.dep_xml.value( 'data(//dependents/dependent[@id="3"]/fname)[1]', 'varchar(50)' ) AS [Dependent 3FN]
-- etc...
FROM emp
OUTER APPLY (
SELECT CAST ( (
SELECT
ROW_NUMBER() OVER ( ORDER BY d.firstname, d.lastname ) AS '@id',
d.cfirstname AS fname,
d.clastname AS lname
FROM @Data d
WHERE
d.badgenum = emp.badgenum
AND d.isdependent = 'Y'
FOR XML PATH ( 'dependent' ), ROOT ( 'dependents' )
) AS xml ) AS dep_xml
) AS dep;
Returns
+-----------+-----------+-------+---------------+---------------+---------------+---------------+---------------+---------------+
| firstname | lastname | bcode | Dependent 1LN | Dependent 1FN | Dependent 2LN | Dependent 2FN | Dependent 3LN | Dependent 3FN |
+-----------+-----------+-------+---------------+---------------+---------------+---------------+---------------+---------------+
| BigBird | Street | VIS | Street | Bert | Street | Ernie | NULL | NULL |
| Oscar | TheGrouch | VIS | NULL | NULL | NULL | NULL | NULL | NULL |
+-----------+-----------+-------+---------------+---------------+---------------+---------------+---------------+---------------+