当前位置: 首页 > 面试题库 >

SQL将行对转置为MS ACCESS数据库中的列

颜博达
2023-03-14
问题内容

我有一个MS Access数据库,其中包含源-
目标对中的翻译句子(CAT工具其他用户的翻译记忆库)。令人讨厌的是,源和目标没有存储在单独的列中,而是存储在通过ID链接的行中,如下所示:

+---+----+--------------+
|id |lang|    text      |
+---+----+--------------+
  1   a     lang a text
  1   b     lang b text 
  2   a     more a text...
  2   b     more b text...
+---+----+--------------+

我可以使用什么SQL将其转换为表,例如:

+---+--------------+--------------+
|id | lang A       | lang B       |
+---+--------------+--------------+
 1   lang a text    lang b text
 2   more a text... more b text...

这里的性能无关紧要,因为我只需要偶尔执行一次,数据库就不会很大(只有几千行)。


问题答案:

交叉表查询应该适合。

TRANSFORM First([Text]) AS LangText
SELECT ID, First([Text])
FROM Table 
GROUP BY ID
PIVOT lang


 类似资料:
  • 问题内容: 今天,我的同事要求我将数据从垂直登台表转换为水平表。我的意思是将行转换为列。我使用了PIVOT并解决了它。但是遇到了这样的情况:如果数据字段重复自身,则在移动数据时会遇到麻烦。 这是我正在处理的测试数据: 我使用PIVOT将行数据显示为列: 输出为: 但他希望输出如下: 最重要的是,登台表中可以有多个CHILD属性。我们需要考虑这一点,并将所有儿童移动到列中。 这可能吗? 问题答案:

  • 问题内容: 我正在尝试将行转置为列,但是没有找到任何好的答案。 这是我想要的示例: 输入表: 输出将是: 问题答案: 您需要枚举值以对其进行透视:

  • 问题内容: MS SQL Server 2012 我有一个名为 indexrows* 的表 * 我想将这些结果转换为如下形式。 我尝试了以下查询,但未成功。我得到这个错误 消息156,级别15,状态1,第10行关键字“ for”附近的语法错误。 任何帮助表示赞赏。 问题答案: 您的查询有些错误。 首先,您在PIVOT上缺少聚合函数。您需要一个汇总。 其次,您需要用方括号而不是单引号将。等括起来。

  • 问题内容: 假设我有一个结构: 与数据库表具有相同的架构。将数据库行解析为结构的最简单方法是什么?我在下面添加了一个答案,但是我不确定这是最好的答案。 问题答案: 这是一种实现方法-只需在函数中手动分配所有结构值即可。

  • 问题内容: 考虑下面的示例,其中有一个包含人员记录的 Person 表和一个包含链接到人员的可选属性的 PersonAttribute 表: Table: Person Table PersonAttribute 我将如何编写一个查询,使所有具有属性的人都像列一样返回?我需要的结果集是: 因此,从本质上讲,我需要编写一个查询,该查询将获取所有带有所有唯一属性键的人记录,这些键被转换为具有每个人记录

  • 问题内容: 我的表包含以下列: 我想显示如下: 如您所见,我想将列与自定义列名成对显示。这对是列A和B,列C和D以及列C和D。 问题答案: