sql - oracle数据库合并多个表的结果

标签 sql database oracle

我想合并来自两个表的数据:-

  • 表 T1 (id,c2,c3,switch)
  • 表 T2 (id,d2,d3)

    T1
    -----
    id   c1      c2      switch
    1   joe    darling     Y
    1   maria    kk        N
    
    T2
    --------------
    id   d1       d2
    1  sydney   austraila
    

    现在如果 T1 中的开关是 'Y'

    我希望输出为

    joe darling sydney australia // which is fine..
    

    如果开关是'N'

    我仍然想要基于开关的名字和姓氏,即“Y”和 T2 表中的其余值。

    joe darling sydney australia //how to achieve this.
    
  • 最佳答案

    假设每个 ID 只有一个 Y 开关,然后试试这个:

    SELECT 
         T12.C1, T12.C2, T2.d1, T2.D2
    FROM T1
    JOIN T1 as T12 ON (T1.ID=T12.ID) AND (T12.switch='Y')    
    LEFT JOIN T2 on (T1.ID=T2.ID)
    

    SQLFiddle demo

    关于sql - oracle数据库合并多个表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138096/

    相关文章:

    php - Laravel 在两个表中搜索 'LIKE' 查询

    mysql - 每分钟更新一次列表的事件

    sql - 如何右连接这些系列,以便此查询将返回 Postgresql SQL 中 count = 0 的结果?

    MySQL多重PK

    sql - 如何只选择昨天的记录?

    oracle - 在 Oracle 中通过 SELECT 查询声明变量并设置其值

    sql - sqlite 中的 9D(十六进制)字符删除

    asp.net - INSERT INTO 语句中的语法错误。系统.Data.OleDb.OleDbErrorCollection

    sql-server - 将 Oracle 数据(和索引)移动到 SQL-Server - 数据大写

    sql - 如何在 Oracle 中通过 YTD 值计算 MTD 和 QTD