【问题标题】:SQL "IS NOT NULL" compensation for SAP HANA SQLScriptSAP HANA SQLScript 的 SQL“IS NOT NULL”补偿
【发布时间】:2016-01-18 04:55:51
【问题描述】:

实际上,我尝试使用 SAP HANA Studio 在 SAP HANA 数据库上运行 is null SQL 语句。这不起作用,因为 SQLScript 没有 is not nullis null 函数。我的陈述如下:

Select *
From MSEG
Where KDAUF is null

不幸的是,它不起作用。有人知道使用 SAP HANA SQLScript 可行的替代方法吗?在互联网上,我发现了使用NULLIFCOALESCE 的提示。但我既不知道如何使用此功能,也不知道如何使其适应WHERE 的工作条件。

【问题讨论】:

    标签: sql sap isnull hana


    【解决方案1】:

    尝试这样使用它

    Select * from MSEG Where KDAUF **NE** ''
    

    【讨论】:

      【解决方案2】:

      NULLIF ( 表达式 , 表达式 ) 返回与第一个表达式相同的类型。

      NULLIF 如果两个表达式不相等,则返回第一个表达式。如果表达式相等,则 NULLIF 返回第一个表达式类型的空值 WHERE IFNULL(KDAUF , 比较值) 我从不使用这个

      另一个是coalesce,如果第一个值为null,则返回第二个VALUE:

      其中 VALUEa = COALESCE(KDAUF,valuea)

      这里,如果kdaUf为null,则coalesce将返回valuea,如果第一个值为null则默认。由于 valuea = valuea,where 子句将为 true,这只是验证 KDAUF 为 NULL 的另一种方式

      【讨论】:

      • 你好。感谢您的回答。不幸的是,我无法理解您的COALESCE 解决方案。所以也许,为了更好地理解,您可以使用我的小代码示例实现COALESCE 解决方案:Select * From MSEG Where KDAUF is null
      • 从 MSEG 中选择 *,其中 1 = COALESCE(KDAUF,1)。 ..... 如果 Kdauf 为 NULL,COALESCE 将转到下一个选项,1, 1=1,WHERE 子句将返回 TRUE。如果 KDAUF 不为空,COALesce 将返回 kduaf 的值(我假设它永远不会是 1),kduaf 将不等于 1,并且 where 子句将失败。有点反直觉,但非常有用。
      • 注意 - 任何值都可以用于 where 初始值和 coalesce 函数的第二个变量,只要它们相等。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多