【发布时间】:2019-09-27 02:28:54
【问题描述】:
我在图像中有第一个输出,我想使用 LINQ Core 将其转换为图像中的第二个输出。 LINQ 中是否有直接 unpivot 选项。
我可以用 SQL 编写 PIVOT 和 UNPIVOT 的代码。但无法在 LINQ 中找到相同的方法。
我有以下相同的 SQL 查询:
SELECT ResourceName,
max(ENText)as ENText,
max(FRText)as FRText,
max(ZHText)as ZHText,
max(DEText)as DEText,
max(ITText)as ITText,
max(JAText)as JAText,
max(PTText)as PTText,
max([PT-BRText]) as [PT-BRText],
max(RUText) as RUText,
max(ESText) as ESText,
max(SVText) as SVText into #temp
FROM
GenericLanguageTranslation
PIVOT
(
max(Translation) FOR LanguageID IN (
ENText,
ZHText,
FRText,
DEText,
ITText,
JAText,
PTText,
[PT-BRText],
RUText,
ESText,
SVText)
) AS Tab2
group by ResourceName
order by 1
select * from #temp
SELECT NEWID() as Id,ResourceName, [LanguageID],[Translation]-- into #GenericLanguageTranslation
FROM #temp
UNPIVOT
(
[Translation]
FOR [LanguageID] IN
(
ENText,
ZHText,
FRText,
DEText,
ITText,
JAText,
PTText,
[PT-BRText],
RUText,
ESText,
SVText
)
) AS UnpivotTranslation
【问题讨论】:
-
@ElandaloussiIshrak 我已经引用了该链接并实现了相同的链接及其工作,但我正在寻找更通用的解决方案或至少一个冗余代码较少的解决方案。
-
查看我的new answer 来回答这个问题。
标签: c# linq pivot unpivot dynamic-linq-core