sql - 将两行以上合并为一行并将正确的数据放入右列
问题描述
首先,如果问题标题让你们感到困惑,我很抱歉,但让我告诉你们我想要什么。
假设我有一个名为topic的表。
Topic_ID | Parent_Topic_ID | Topic_Text | lang_culture
---------|-----------------|----------------------|--------------
1 | 0 | Newton's Law | en-US
2 | 1 | First Law | en-US
现在我有另一个名为translate_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-server 中实现此输出?
我现在得到的,
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;
但在那之后不知道如何得到我想要的结果?
解决方案
您可以如下所示进行 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
推荐阅读
- java - JavaFX GridLayout 对象隐藏节点
- java - 不同持久性上下文中的不同hashCode()?
- python - gensim 错误:“NoneType”对象在 Fasttext 训练期间不可下标
- django - Django:网络应用程序和移动应用程序:选择哪种身份验证系统:Jwt vs session cookie
- java - 打开 Sqlite DB Android 时出现 FileNotFound 异常
- c# - 如何在 Update() 中编写调用一次但检查每一帧的代码
- css - 溢出-x 在主窗口和 div 中导致滚动条
- swift - GLKView 没有填满包含的视图
- unix - FASTA 文件编号
- node.js - 异步/等待的问题。不运行下一行