首页 > 解决方案 > ZEROIFNULL - SQL Teradata - Azure

问题描述

我们正在从 Teradata 迁移到 Azure,并将指向 Teradata 的脚本转换为在 Azure 中工作的适当脚本。

Teradata SQL 服务器中有一个名为ZEROIFNULL的函数,正如预期的那样,如果数字参数的值为 NULL,它将返回零。

此功能似乎在 Azure 中不起作用,我们使用的是 Microsoft SQL Server Management Studio,你们知道如何替换它吗?

这是一个例子

    SUM(ZZ.ONECOLUMN) AS ONECOLUMN,
    SUM(ZZ.OTHERCOLUMN) AS OTHERCOLUMN,
    SUM(**ZEROIFNULL**(ZZ.THISCOLUMN)) AS THISCOLUMN,

任何建议将不胜感激,

谢谢!

标签: sqlsql-serverazureteradata-sql-assistantmigrating

解决方案


正如 jarlh 所说,您可以使用:

COALESCE(ZZ.THISCOLUMN, 0)

COALESCE表达式是 CASE 表达式的语法快捷方式。

您还可以使用提供的 ravioli 等CASE语句:

CASE  
WHEN (ZZ.THISCOLUMN IS  NULL) THEN 0  
ELSE ZZ.THISCOLUMN
END 

希望这可以帮助。


推荐阅读