使用列中的值调用函数 (SQL)



我正在尝试调用一个函数,该函数将 Where 子句中此 Select 的第一列的值用作第二个参数(... = table_timescode.code(。但它对我不起作用。

这就是我正在尝试的:

Select code, name, 
[stored_proced] ('3',(Select Min(bol.line) as Line From table_bone bon join table_line bol on 
bon.code = bol.code where bon.code = table_timescode.code),1) as SuperCode           
From table_timescode
Where (Day >= convert(datetime, '18/05/2020', 103));

我在 SQL Server 中使用Transact-SQLMicrosoft

这回答了问题的原始版本。

不能在 SQL 查询中使用存储过程。 这是根据定义。 我想到了三个选项:

  1. 将存储过程转换为存储函数。
  2. 将存储过程的结果保存在表中。
  3. 将存储过程的逻辑直接移动到查询中或视图中。

第二个选项相当麻烦,因为您使用的是相关的子查询。 所以它不会起作用,除非你用循环替换你的代码(并使用 - 恐怖的恐怖 - 光标(。

第一个或第三个选项是最好的方法。 请注意,并非所有存储过程都可以转换为函数,因此可能无法实现。

相关内容

  • 没有找到相关文章