|Value of arg||ZEROIFNULL Value Returned|
|Not null||Value of the numeric argument.|
|Null or zero
A structured UDT column value is null only when you explicitly place a NULL in the column, not when a structured UDT instance has an attribute that is set to NULL.
If the argument is not numeric, the value is converted to a numeric value according to implicit type conversion rules. If the argument cannot be converted, an error is reported. For more information, see Teradata Vantage™ - Data Types and Literals, B035-1143.
If arg is a character string, the string is converted to a numeric value of FLOAT data type.
If arg is a UDT, the following rules apply:
- The UDT must have an implicit cast to any of the following predefined types:
To define an implicit cast for a UDT, use the CREATE CAST statement and specify the AS ASSIGNMENT clause. For more information, see Teradata Vantage™ - SQL Data Definition Language Syntax and Examples, B035-1144.
- Implicit type conversion of UDTs for system operators and functions, including ZEROIFNULL, is a Teradata extension to the ANSI SQL standard. To disable this extension, set the DisableUDTImplCastForSysFuncOp field of the DBS Control Record to TRUE. For details, see Teradata Vantage™ - Database Utilities , B035-1102 .
ZEROIFNULL cannot be applied to the following types of arguments:
- BYTE or VARBYTE
- BLOB or CLOB
- CHARACTER or VARCHAR if the server character set is GRAPHIC