我有一个像这样的表
ColA|ColB|LowRange|HighRange
----------------------------
1 A 1 5
我想创建一个视图,以下列格式提供数据
ColA|ColB|RangeNumber
----------------------
1 A 1
1 A 2
1 A 3
1 A 4
1 A 5
我对视图不够熟悉,所以我需要一些指导。
谢谢
您可以使用递归CTE完成此操作
CREATE TABLE ranges (
ColA int,
ColB char,
LowRange int,
HighRange int,
);
INSERT INTO ranges
VALUES (1, 'A', 1, 5),
(2, 'B', 5, 10);
GO
CREATE VIEW range_view
AS
WITH each AS
(
SELECT ColA, ColB, LowRange AS n, HighRange
FROM ranges
UNION ALL
SELECT ColA, ColB, n + 1, HighRange
FROM each
WHERE n + 1 <= HighRange
)
SELECT ColA, ColB, n
FROM each
GO
SELECT * FROM range_view
DROP VIEW range_view
DROP TABLE ranges;
问题内容: 我如何让SQL重复一些基于集合的操作任意次数而不会循环?如何让SQL对一定范围的数字执行运算?我基本上是在寻找一种基于集合的for循环的方法。 我知道我可以创建一个包含整数(例如1到1000)的小表,然后将其用于该范围内的范围操作。 例如,如果我有该表,则可以选择查找数字100-200的总和,如下所示: 有任何想法吗?我有点在寻找适用于T-SQL的东西,但是任何平台都可以。 问题答案:
我需要创建,让我们说,12缩略图从视频,但跳过10%在开始和结束。我找到了这个东西,但它只是每1000帧拍一次。在我的情况下,这个范围将是可变的,如果它将在秒内更好。不知道如何使用ffmpeg来实现这一点,不要使用它太多。
问题内容: 如果我有一个变量,如何将数字1-50放入数组中? 问题答案: 这可以通过使用简单的for循环来解决:
问题内容: 是否有任何技术可以允许这样的行设置 产生结果 实际上,这是行到范围的操作。我正在Oracle Land上玩,并且希望您提出任何建议。 问题答案: 我觉得可能可以对此进行改进,但是它可以起作用:
问题内容: 我正在尝试使用SSMS在Azure SQL中创建范围凭证。 我不断遇到错误消息,指出“’cred-name’附近的语法不正确。预期为’=’。” 我不确定我的语法是不正确的,因为我过去已经成功完成了此确切命令,所以我不确定发生了什么变化。我以为可能只是intellisense搞砸了,所以我将SSMS实例从17.3更新到17.7,但是我仍然收到相同的错误消息。 有谁知道可能会发生什么变化?
问题内容: 是否可以基于层次结构/ cte创建视图? 我看过一个有关如何基于链接递归查询生成结果集的示例。 我已经附上了ddl和声明。 谢谢你, 埃尔默 问题答案: 后已被指定(超出右括号),您需要选择从CTE的所有值: 这是构成视图的实际选择查询。 这是一个完整的工作示例,其中选择了视图的最终输出,以及一些其他语句,以允许这些语句在SQL Server Management Studio中一次执