首先,很抱歉,如果让您感到困惑,但让我向您展示我想要的东西。
假设我有一个名为 topic 的表。
Topic_ID | Parent_Topic_ID | Topic_Text | lang_culture
---------|-----------------|----------------------|--------------
1 | 0 | Newton's Law | en-US
2 | 1 | First Law | en-US
现在我还有另一个名为 translated_topic 的表,其中同一主题以不同的语言存储
Topic_ID | text | lang_culture
---------|-------------------- |--------------
1 | न्यूटन का नियम | hi-IN
1 | loi de newton | fr-FR
2 | पहला कानून | hi-IN
2 | Première loi | fr-FR
现在,我想要这样的节目输出...
Topic_ID | Topic_Text | lang_culture | hi-In | fr-FR
---------|--------------------|--------------|------------------ |-------------
1 | Newton's Law |en-US | न्यूटन का नियम | loi de newton
2 | First Law | en-US | पहला कानून |Première loi
如何在SQL服务器中实现此输出?
我现在得到的是什么
SELECT td.topic_id,
td.Topic_Text AS MainText,
td.lang_culture,
tt.text,
tt.lang_culture
FROM dbo.topic td
LEFT JOIN dbo.translated_topic tt
ON td.topic_id = tt.topic_id;
但是之后不知道如何获得我想要的结果?
答案 0 :(得分:1)
您可以按以下方式PIVOT-
SELECT *
FROM
(
SELECT A.Topic_ID,A.Parent_Topic_ID,A.Topic_Text,A.lang_culture lang_culture,B.lang_culture B,B.text
FROM Table1 A
INNER JOIN Table2 B ON A.Topic_ID = B.Topic_ID
)P
PIVOT
(
MAX(text)
FOR B IN ([hi-IN],[fr-FR])
) PVT