Select column name dynamically based on rows from another table in SQL server
It's probably not the optimal way to do it and I would probably look at normalizing the database but here's a way to get the data you want.

with cte as (  
select 'field1' "name", convert(nvarchar(max),field1) "value" from [dbo].[DynamicFieldsValue] where customerID=1  
union  
select 'field2' "name", field2 "value" from [dbo].[DynamicFieldsValue] where customerID=1 
union  
select 'field3' "name", field3 "value" from [dbo].[DynamicFieldsValue] where customerID=1  
)  
select * from [DynamicFieldsMaster] dm  
join cte on dm.name = cte.name