sql - SQL 中的 While 循环如何工作
问题描述
我正在使用 sql 中的 While 循环,并尝试在这些日期应用代码。
DECLARE @StartDate DATETIME = '2018-08-01';
DECLARE @EndDate DATETIME = '2018-08-15';
WHILE @StartDate < @EndDate
BEGIN
SELECT @StartDate
SET @StartDate = @StartDate+1
END;
当我运行它时,我会在多个窗口中获得输出,尽管我希望它在同一个窗口中。
解决方案
您的循环正在进行选择,因此循环的每次迭代都将提供一个新的查询结果窗口。如果您希望它作为一个结果集返回,则必须将其插入表中并选择循环之外的所有内容。
DECLARE @StartDate DATETIME = '2018-08-01';
DECLARE @EndDate DATETIME = '2018-08-15';
DECLARE @table TABLE (yourdate DATETIME)
WHILE @StartDate < @EndDate
BEGIN
INSERT INTO @table (yourdate)
SELECT @startdate
SET @StartDate = @StartDate+1
END;
SELECT *
FROM @Table
推荐阅读
- nginx - nginx 在 MQTTS 上进行负载平衡
- python - Django如何创建仅对某些类型的用户可见的按钮
- capl - CAPL 代码从按钮发送信号值
- javascript - 即使添加了 async/await,代码也不会异步执行
- android - 如何在 Android 10 中以编程方式连接 Wi-Fi
- linux - 表示 SNMP 中的整数 26
- c# - 用户掷两个骰子,应用程序会根据他们在两个骰子上获得相同数字的速度来告诉他们的运气
- flutter-dependencies - amplify_auth_cognito 中 Auth.updateUserAttributes 的等价物是什么
- javascript - datefns 格式未完全格式化
- networking - Libreswan 基于路由的 VPN