如何正确使用表值函数?

Posted

技术标签:

【中文标题】如何正确使用表值函数?【英文标题】:How to properly use table-valued functions? 【发布时间】:2012-09-03 12:24:43 【问题描述】:

我有一个包含nvarchar 列的表。存储在此nvarchar 列中的字符串包含我需要提取的数字。我的数据库中存在一个表值RegexMatches 函数,我可以使用它来执行此操作(它将返回数字模式的匹配列表)。

我的要求:

这个表值函数必须应用于表的每一行中的这一列。我无法将中间结果存储在任何地方(意味着第 1 行的函数 - 存储 - 将函数应用于第 2 行 - 存储),因为我不知道那里会有多少条记录,而且很可能有 100 条记录。在过程结束时,我应该有一个临时表,其中存储了从所有行中提取的所有这些数字。

【问题讨论】:

【参考方案1】:

您想使用CROSS APPLY。参见更多示例here。

【讨论】:

以上是关于如何正确使用表值函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在实体框架代码优先方法中使用表值函数?

SQL 2005 - 表值函数编译正常,但选择时在 .. 附近抛出不正确的语法

sql 如何使用表值函数。 ufnGetContactInformation是函数

如何在 SQL Server where 子句中使用表值函数

如何在 SQL Server 的表值函数中使用 CTE 语句

sql server表值函数和视图如何一起使用