>Are you aware of CROSS APPLY? Ah thanks, it is reasonable.
Just in case: "... unnest(tableFunction(..))" throws an error like "function tableFunction does not exist". It was extremely confusing for me. Technically speaking, unnest searches for regular functions, thus it ignores table functions. table(...) searches for table functions and ignores arrays. Does it make sense to perform an additional check in case of error, so the error message becomes "did you mean <<cross apply(tableFunction)>>?" in case someone uses "unnest(tablefunction)"? Vladimir
