首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQL Server中生成常量范围

在SQL Server中生成常量范围
EN

Stack Overflow用户
提问于 2010-10-06 13:04:41
回答 1查看 130关注 0票数 1

有没有办法选择一个常量范围,比如1到100之间的每个整数,或者两个日期之间的每个月?

与其这样做..。

代码语言:javascript
运行
复制
select '2010-01-01' union
select '2010-02-01' union
select '2010-03-01' union
select '2010-04-01' union
select '2010-05-01' union
select '2010-06-01' union
select '2010-07-01' union
select '2010-08-01' union
select '2010-09-01' union
select '2010-10-01' union
select '2010-11-01' union
select '2010-12-01'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-06 13:26:30

您可以对1到100之间的每个整数使用CTE查询。

代码语言:javascript
运行
复制
WITH IntegerRangeCTE([i]) AS
(
    SELECT
        1 AS [i]
    UNION ALL
    SELECT
        [i] + 1
    FROM
        IntegerRangeCTE
    WHERE [i] < 100
)
SELECT * FROM IntegerRangeCTE

对于介于2010-01-01到2010-12-31之间的日期,您可以使用此选项。

代码语言:javascript
运行
复制
WITH DateRangeCTE([d]) AS
(
    SELECT
        CONVERT(DATETIME, '2010-01-01') AS [d]
    UNION ALL
    SELECT
        DATEADD(m, 1, [d]) AS [d]
    FROM
        DateRangeCTE
    WHERE [d] < DATEADD(m, -1, CONVERT(DATETIME, '2010-12-31'))
)
SELECT * FROM DateRangeCTE

如果收到消息“语句已终止。语句完成前最大递归N已耗尽。”,请使用query hint MAXRECURSION

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3869608

复制
相关文章

相似问题

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