【问题标题】:SQL - Several rows into oneSQL - 多行合二为一
【发布时间】:2018-07-09 13:09:23
【问题描述】:

表格共有 12 行。每个唯一记录包含 4 行。我希望 3 行/记录的结果总共有 4 个字段/列。

输入示例:
测试
455
688
987
发短信
567
53
878
朱格拉纳
765
454
989

示例输出/结果:
列 1 列 2 列 3 列 4
测试 455 688 987
发短信 567 53 878
Julgranar 765 454 989

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 如果4行可以合二为一,那一定是哪里出了问题
  • 这里的大多数人想要格式化文本,而不是图像(或图像链接)。向我们展示示例表数据和预期结果。同时向我们展示您当前的查询尝试。
  • 您使用的是哪个DBMS product? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag postgresql, oracle, sql-server, db2, ...
  • 判断TEST 应该与455 而不是567 在同一行的逻辑是什么?

标签: sql sql-server sql-server-2014


【解决方案1】:

根据您未包含的某些数据规则,有几种方法,但这是使用您提供的方法的一种方法。

 SELECT
    t1.Field1,
    t2.Field2
FROM Table1 t1
    LEFT JOIN Table1 t2 ON t1.FK = t2.FK AND t2.Field1 IS NULL

另一种方式:

    SELECT
    t1.Field1,
    (SELECT Field2 FROM Table2 t2 WHERE t2.FK = t1.FK AND Field1 IS NULL) AS Field2
FROM Table1 t1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多