首页 > 解决方案 > 如何在选择子句中使用表值函数?

问题描述

我有一个带有字符串列(rawData )之一的tableA ,我有一个表值函数(functionA),该函数将接受“ rawData ”作为输入参数并返回五个新字段。该功能将做什么?- 这将做一些字符串操作并将一些数据分成五个值

我的动机是选择该字符串列(rawData)并传递该表值函数(functionA )并为tableA中的每一行获取这五个新字段

这是示例:

Select 
    (Select * from function (rawData))
from tableA

我的期望是我应该从functionArawData中获取具有该值的每一行,但是我遇到了以下错误:

当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。

我如何实现这一目标?

标签: sql-servertsqlsql-server-2008table-valued-parameters

解决方案


您将使用交叉应用:

SELECT a.rawData, b.*
FROM TableA a
CROSS APPLY FunctionA(a.rawdata) b

推荐阅读