在 T-SQL 查询结果中包含来自表值函数的列

问题描述

假设我有一个包含一堆地址的表:

地址
史密斯街10号
琼斯街20号

我有一个函数,它将接受提供的字符串地址并返回一个表,每个地址组件都有单独的列,例如:

数量 街道
10 史密斯街

然后我想在所有地址上运行该函数并返回一个包含已解析列的表:

地址 数量 街道
史密斯街10号 10 史密斯街
琼斯街20号 20 琼斯街

这是一个简化的例子,因为解析函数可能会做一些更棘手的事情,所以它必须是一个函数

有什么想法吗??

解决方法

唉,应该看起来有点难,我需要交叉应用:

https://www.red-gate.com/simple-talk/sql/learn-sql-server/tsql-user-defined-functions-ten-questions-you-were-too-shy-to-ask/#second

所以在我的例子中是:

选择 s.地址, p.* 从 来源 交叉申请 [dbo].parse_address p