Valori letterali Null e inferenza dei tipi (Entity SQL)Null Literals and Type Inference (Entity SQL)

I valori letterali null sono compatibili con qualsiasi tipo nel sistema di tipi Entity SQLEntity SQL.Null literals are compatible with any type in the Entity SQLEntity SQL type system. Tuttavia, per il tipo di un valore letterale null per dedurre correttamente, Entity SQLEntity SQL vengono imposti determinati vincoli su dove si può utilizzare un valore letterale null.However, for the type of a null literal to be inferred correctly, Entity SQLEntity SQL imposes certain constraints on where a null literal can be used.

Valori null tipizzatiTyped Nulls

I valori null tipizzati possono essere usati in qualsiasi posizione.Typed nulls can be used anywhere. L'inferenza dei tipi non è richiesta per i valori null tipizzati in quanto il tipo è noto.Type inference is not required for typed nulls because the type is known. È ad esempio possibile costruire un valore null di tipo Int16 con il costrutto Entity SQLEntity SQL seguente:For example, you can construct a null of type Int16 with the following Entity SQLEntity SQL construct:

(cast(null as Int16))

Valori letterali null mobiliFree-Floating Null Literals

I valori letterali null mobili possono essere usati nei contesti seguenti:Free-floating null literals can be used in the following contexts:

  • Come argomento di un'espressione CAST o TREAT.As an argument to a CAST or TREAT expression. Questa è la modalità consigliata per produrre un'espressione null tipizzata.This is the recommended way to produce a typed null expression.

  • Come argomento di un metodo o di una funzione.As an argument to a method or a function. In questo caso si applicano le regole di overload standard.Standard overload rules apply.

  • Come uno degli argomenti di un'espressione aritmetica, ad esempio +, - o /.As one of the arguments to an arithmetic expression such as +, -, or /. Gli altri argomenti non possono essere valori letterali null. In caso contrario, l'inferenza dei tipi non è possibile.The other arguments cannot be null literals, otherwise type inference is not possible.

  • Come qualsiasi argomento di un'espressione logica (AND, OR o NOT).As any of the arguments to a logical expression (AND, OR, or NOT). Tutti gli argomenti sono noti come tipo Boolean.All the arguments are known to be of type Boolean.

  • Come argomento di un'espressione IS NULL o IS NOT NULL.As the argument to an IS NULL or IS NOT NULL expression.

  • Come uno o più argomenti di un'espressione LIKE.As one or more of the arguments to a LIKE expression. Per tutti gli argomenti è previsto il tipo String.All arguments are expected to be strings.

  • Come uno o più argomenti di un costruttore di tipo denominato.As one or more of the arguments to a named-type constructor.

  • Come uno o più argomenti di un costruttore multiset.As one or more of the arguments to a multiset constructor. Almeno un argomento del costruttore multiset deve essere un'espressione non costituita da un valore letterale null.At least one argument to the multiset constructor must be an expression that is not a null literal.

  • Come una o più espressioni THEN o ELSE in un'espressione CASE.As one or more of the THEN or ELSE expressions in a CASE expression. Almeno una delle espressioni THEN o ELSE nell'espressione CASE deve essere un'espressione diversa da un valore letterale null.At least one of the THEN or ELSE expressions in the CASE expression must be an expression other than a null literal.

I valori letterali null mobili non possono essere usati in altri scenari.Free-floating null literals cannot be used in other scenarios. Non possono ad esempio essere usati come argomenti di un costruttore ROW.For example, they cannot be used as arguments to a row constructor.

Vedere ancheSee Also

Panoramica di Entity SQLEntity SQL Overview