Here's a sample with a (rather useless) subquery on the system table SYSTAB, returning a date value. -- It "packs" the expected value as column "x" of a derived query (DT) -- and then calls the stored procedure for that according column, split by a hyphen. -- -- Note: If you do not apply the "TOP 1" clause, DT will return several rows -- and the procedure will be called for each result set row separately -- (in case that may be helpful here) select line_num, row_value from (select top 1 last_modified_at as x from systab order by 1) DT CROSS APPLY sa_split_list(DT.x, '-') -- where line_num = 1 |
Are you using version 12 or below? In those versions a procedure does not accept subqueries as argument, such as your "(select top...)". With v16, that was changed, and your query should work here. In v12, you could use a derived query to get the top result and then use CROSS APPLY to provide the result as argument to the procedure. The forum does contain such samples, search for APPLY or LATERAL... I am using SA12. Can you show me how I use Cross Apply in this case? I have searched but do not understand how to do. I found an openstring solution, but it had its limitations as well.
(29 Sep '17, 07:16)
Rolle
|