我有一个包含以下数据的表 -
MinFormat(int) MaxFormat(int) Precision(nvarchar)
-2 3 1/2
现在我希望SP的结果为 -
-2
-3/2
-1
-1/2
0
1/2
1
3/2
2
5/2
3
有没有可以给出这样结果的函数或脚本?
想法是根据精度值,将最小边界(MinFomrat col值为整数)的结果创建为最大边界(MaxFormat Col值为整数)。
因此,在上面的例子中,值应该从-2开始,并根据精度值(1/2)生成下一个值,直到达到3
答案 0 :(得分:0)
WITH cte as
(
SELECT CAST(MinFormat as float) as data, MaxFormat, CAST(Precision as float) as Precision
FROM (VALUES (-2, 3, N'0.5')) as your_table(MinFormat, MaxFormat, Precision)
UNION ALL
SELECT CAST((data + Precision) as float) as data, MaxFormat, Precision
FROM cte
WHERE data + Precision <= MaxFormat
)
SELECT data FROM cte ORDER BY data OPTION (MAXRECURSION 0)