]. See:
DECLARE @second TABLE(idemployee INT IDENTITY(1,1), employee NVARCHAR(30), salary INT, trans INT, panier INT, congé INT)
INSERT INTO @second (employee, salary, trans, panier, congé)
VALUES('thales', 125, 25, 24, 62),
('interime', 254, 87, 12, 34),
('aymane', 524, 25, 45, 47)
SELECT idemployee, employee, namerubrique, montant
FROM @second AS pvt
UNPIVOT (montant FOR namerubrique IN ([salary], [trans], [panier], [congé])) AS unpvt
DataTable second = new DataTable();
second.Columns.AddRange(new DataColumn[]
{new DataColumn("idemployee", typeof(int)),
new DataColumn("employee", typeof(string)),
new DataColumn("salary", typeof(int)),
new DataColumn("trans", typeof(int)),
new DataColumn("panier", typeof(int)),
new DataColumn("congé", typeof(int))});
second.Rows.Add(new object[]{1, "thales", 125, 25, 24, 62});
second.Rows.Add(new object[]{2, "interime", 254, 87, 12, 34});
second.Rows.Add(new object[]{3, "aymane", 524, 25, 45, 47});
string[] cols = new string[]{"salary","trans", "panier", "congé"};
var unpivot = second.AsEnumerable()
.SelectMany(x=> cols.Select(c=> new
{
idemployee = x.Field<int>("idemployee"),
employee = x.Field<string>("employee"),
namerubrique = c,
montant = x[c]
}));