Return column in separate row in SELECT statement
CROSS APPLY would be a good fit here
Select CustomerId
,CompanyName
,B.*
From Customers A
Cross Apply (values (PrimaryPhone)
,(SecondaryPhone)
) B(Phone)
Where Phone is not null
-- EDIT forgot the WHERE
You could try an union like this
SELECT
CustomerId,
CompanyName,
PrimaryPhone as Phone,
FROM dbo.Customers
UNION
SELECT
CustomerId,
CompanyName,
SecondaryPhone as Phone,
FROM dbo.Customers
WHERE
SecondaryPhone IS NOT NULL