0

我有两个示例表:

TABLE1:
      ID    | COLUMN_B| COLUMN_C
   _________|_________|_________
       1    |    0    |    1
    ________|_________|_________
       2    |    0    |    1
    ________|_________|_________
       3    |    0    |    1


    TABLE2:
      ID    | COLUMN_E| COLUMN_F
    ________|_________|________
       1    |    Y    |    X
    ________|_________|_________
       2    |    Y    |    X
    ________|_________|_________
       3    |    Y    |    X

它们通过 ID 列相互关联。我想在 TABLE1 上执行选择,仅当 COLUMN_E 上的值为 Y 时才带上 COLUMN_B 和带上 COLUMN_C。

是否可以创建一个模拟类似以下内容的条件:“选择 column_b,并且仅当 TABLE2 中 column_e 上的值对于相同 ID 为 Y 时才选择 column_c”?

4

2 回答 2

1

如果我理解正确,这只是一个case表达:

select t1.column_b,
       (case when t2.column_e = 'Y' then t1.column_c end) as column_c
from table1 t1 left join
     table2 t2
     on t1.id = t2.id;
于 2018-09-20T17:59:37.377 回答
0

使用连接

    select t1.COLUMN_B,
   case when t2.COLUMN_E='Y' then t1.COLUMN_C else null
end as c from table1 t1 
    left join table2 t2 on t1.id=t2.id
于 2018-09-20T18:00:10.730 回答