【问题标题】:teradata SQL case statement with where clause or an alternative to this带有 where 子句的 teradata SQL case 语句或替代此语句
【发布时间】:2017-06-21 18:43:45
【问题描述】:

我想在 where 子句中执行特定任务,只有当源像“GOLD%”然后 SOURCE_SUB_CATEGORY 像任何('WHITE%','YELLOW%')。

SELECT t1,t2, t3 from table where <other conditions> and case when SOURCE="GOLD%" then SOURCE_SUB_CATEGORY like any ('WHITE%','YELLOW%') end group by 1,2,3.

这是抛出错误 - “语法错误,在单词 'SOURCE_SUB_CATEGORY' 和 '喜欢'关键字”。 所以我要寻找的只是当源是黄金时才执行,然后只有当 source_sub_category 像任何 white% 或 Yellow% 时才选择额外的 where 条件。我想我不应该在这里使用 case 语句,我也准备好使用任何替代方法来执行此任务。

【问题讨论】:

    标签: teradata


    【解决方案1】:

    所以,首先,SOURCE="GOLD%" 无效。你想要SOURCE LIKE 'GOLD%'

    为了处理你的 where 语句,我会使用类似的东西:

    where...
    and (
    (SOURCE LIKE 'GOLD%' and sub_source_category like any('WHITE%','YELLOW%'))
    OR SOURCE NOT LIKE 'GOLD%')
    

    【讨论】:

      猜你喜欢
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 2014-11-18
      • 2018-11-29
      相关资源
      最近更新 更多