美好的一天!
我正在使用mssql并希望像SelectMany()那样做.NET。
我有一些包含一些代码的表格。我还存储了获取代码并返回多条记录的函数。因此,目标是从带有代码的表中选择几个记录,并使用我的函数将每个记录转换为多个记录。
例如,带代码的表:
CODES
14
13
42
26
55
例如,我的函数返回所有代码分隔符:
14 -> 1, 2, 7, 14
所以我想写一个SELECT,它获取10到20之间的所有代码,并返回带有代码及其除数的表:
CODE DIVISOR
13 1
13 13
14 1
14 2
14 7
14 14
使用C#和SelectMany()可以这样做:
codes.Where(code => code > 10 && code < 20).SelectMany(code => GetDivisors(code))
但是如何使用MSSQL完成?
答案 0 :(得分:4)
您可以使用outer apply
为左侧表格中的每一行运行UDF:
select c.Code
, d.Divisor
from Codes as c
outer apply
dbo.YourTableUdf(c.Code) as d