ZEROIFNULL-SQL Teradata-Azure
我们正在从Teradata迁移到Azure,并将指向Teradata的脚本转换为在Azure中工作的适当脚本 Teradata SQL server中有一个名为ZEROIFNULL的函数,如预期的那样,如果数值参数的值为NULL,它将返回零 此功能在Azure中似乎不起作用,我们使用的是Microsoft SQL Server Management Studio,你们知道如何替换它吗 这里有一个例子ZEROIFNULL-SQL Teradata-Azure,sql,sql-server,azure,teradata-sql-assistant,migrating,Sql,Sql Server,Azure,Teradata Sql Assistant,Migrating,我们正在从Teradata迁移到Azure,并将指向Teradata的脚本转换为在Azure中工作的适当脚本 Teradata SQL server中有一个名为ZEROIFNULL的函数,如预期的那样,如果数值参数的值为NULL,它将返回零 此功能在Azure中似乎不起作用,我们使用的是Microsoft SQL Server Management Studio,你们知道如何替换它吗 这里有一个例子 SUM(ZZ.ONECOLUMN) AS ONECOLUMN, SUM(ZZ.O
SUM(ZZ.ONECOLUMN) AS ONECOLUMN,
SUM(ZZ.OTHERCOLUMN) AS OTHERCOLUMN,
SUM(**ZEROIFNULL**(ZZ.THISCOLUMN)) AS THISCOLUMN,
如有任何建议,我们将不胜感激
谢谢 正如jarlh所说,您可以使用:
COALESCE(ZZ.THISCOLUMN,0)
表达式是大小写表达式的语法快捷方式
您还可以使用ravioli提供的语句:
CASE
WHEN (ZZ.THISCOLUMN IS NULL) THEN 0
ELSE ZZ.THISCOLUMN
END
希望这能有所帮助。ANSI SQL answer
COALESCE(ZZ.THISCOLUMN,0)
。您还有函数ISNULL
,它具有类似的功能:ISNULL(NULLableValue,0)
。COALESCE(COLUMN,0)函数给了我一个错误,该列不应总是空的,这意味着这个ISNULL在将来不会起作用/<代码>合并应该可以工作。如果没有,您可以始终使用大小写
等效项:大小写当ZZ.thiscollan为空时,则0 ELSE ZZ.thiscollan以thiscollan结尾
随后出现的错误,其中不相关的合并(column,0)起了作用,谢谢!