首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内联表值函数中的变量

内联表值函数中的变量
EN

Stack Overflow用户
提问于 2019-10-10 15:29:42
回答 1查看 132关注 0票数 0

我正在尝试使用SSMS v18.2通过while循环在SQL Server 2017上编写一个内联表值函数。

我可以在一个循环的内联表值函数中声明一个变量吗?

如果是,那么它的语法是什么?

EN

Stack Overflow用户

发布于 2019-10-10 16:06:39

我回答的是注释而不是问题,这里的问题是“因为我想使用一个具有int和increasing类型变量的while循环”。简单地说,不要这样做。最好的(我的意思是最好的)方法是使用Tally (它们也比rCTE快)。

下面将生成数字1-1,000,000,并将在几秒钟内完成:

代码语言:javascript
运行
复制
WITH N AS(
    SELECT N
    FROM (VALUES(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL))N(N)),
Tally AS (
    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS I
    FROM N N1, N N2, N N3, N N4, N N5) --1 Million
SELECT I
FROM Tally;

上面是一个基于集合的解决方案,可以“轻松”地扩展以处理数据集;例如,创建两个日期之间的所有日期。

你也可以在Jeff Moden的这篇文章中阅读关于Tallys的文章:The "Numbers" or "Tally" Table: What it is and how it replaces a loop

这个问题并没有真正回答OP的真正问题,它只是向他们介绍了tally 9,这不适合在评论中使用)。我建议,Hai Nguyen,你可以问一个新的问题,解释你真正的目标,这样我们就可以帮助你了解如何将上述内容付诸实践。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58317616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档