Using rand() functions in case expressions  case expression requires at least one non-null result

Chapter 14: Using Batches and Control-of-Flow Language

case expression results

The rules for determining the datatype of a case expression are based on the same rules that determine the datatype of a column in a union operation. A case expression has a series of alternative result expressions (R1, R2, ..., Rn in the example below) which are specified by the then and else clauses. For example:

case
          when search_condition1 then R1
          when search_condition2 then R2
          ...
          else Rn
     end

The datatypes of the result expressions R1, R2, ..., Rn are used to determine the overall datatype of case. The same rules that determine the datatype of a column of a union that specifies n tables, and has the expressions R1, R2, …, Rn as the ith column, also determine the datatype of a case expression. The datatype of case is determined in the same manner as by the following query:

select...R1...from ...
union
select...R2...from...
union...
...
select...Rn...from...

Not all datatypes are compatible, and if you specify two datatypes that are incompatible (for example, char and int), your Transact-SQL query fails. For more information about the union-datatype rules, see the Reference Manual.





Copyright © 2005. Sybase Inc. All rights reserved. case expression requires at least one non-null result

View this book as PDF