【问题标题】:Conditional SQL queries with SQL Script使用 SQL 脚本的条件 SQL 查询
【发布时间】:2019-02-25 02:18:15
【问题描述】:

我有两个示例表:

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”?

【问题讨论】:

    标签: sql logic sql-scripts hana-sql-script hana-studio


    【解决方案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;
    

    【讨论】:

      【解决方案2】:

      使用连接

          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
      

      【讨论】:

      • 不幸的是,这不能解决问题:( 当 column_e != Y 时,此查询既不会给我带来 column_b 也不会带来 column_c。我希望它总是带上 column_b,但只有在 column_e = 时才带上 column_c是的。
      • @Nicole 然后我错了,什么时候能解决你的问题
      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 2018-01-20
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 2022-01-24
      • 2016-04-12
      相关资源
      最近更新 更多