问题标签 [set-based]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
131 浏览

sql - 以基于集合的方法转换游标内的 if-else 语句

我有一个包含带有 if-else 语句的游标的脚本,但是浏览表格需要太多时间。(一个有 79000 行的表需要 1 小时)。所以我需要将它转换为基于集合的方法。

if 语句是

其中@ean 和@canal 是使用游标在每一行中检索的值。浏览的表是 tmp_day_house_info_corporate。所以我需要从 tmp_day_house_info_corporate 中检索所有行,其中 if 语句中的 @info 和 @canal 检索到 0。

感谢您的任何帮助。

0 投票
2 回答
244 浏览

sql - SQL:无法恢复有效的开始/结束日期按查询排序/分区

我想带回一个结果集,该结果集返回具有多个供应商更改的 id 的开始生效日期和结束生效日期。为此,我正在查看一个交易表,其中记录了 id、供应商的 id 和交易发生的日期。在id切换供应商的情况下,我想退出旧的关联并记录新的关联。我的意图是插入一个新行,其中最新的切换日期作为开始生效日期,空值作为结束生效日期。为了完成该活动,我想用最新的切换日期填充的结束生效日期更新上一行。在我有交易但 id 没有切换供应商的情况下,我想忽略该行。

我对单个 id 有效,但是,当我添加第二个 id 时,顺序/分区不起作用。

这是生成测试行的脚本。记录了适用于单个 id 的 sql。

==================================================== =================

已编辑

以下是期望的结果:

在此处输入图像描述

0 投票
3 回答
187 浏览

sql - 在 SQL 中处理基于集合的操作

我试图更好地理解基于集合的逻辑并简化我正在处理的一段代码。这是我目前正在使用的示例(由于很快就会变得明显的原因,它目前不起作用):

出于示例的目的,假设有 200 行符合SELECT语句中的条件。还假设我们不能对user表进行更改。我的问题是,不使用临时表并且(希望)不使用WHILE循环,我还能如何处理这个问题?

请注意,引用的 SP 是一个相当复杂的存储过程,需要使用该SELECT语句中的信息。我可以通过使用临时表并逐行处理这个问题,但我试图了解其他可以批量处理的方法。

0 投票
0 回答
85 浏览

sql - 设置基于解决方案为视图中的每一行调用存储过程

我想为数据库视图中返回的每一行调用一个存储过程,并将该行中的值传递给存储过程。请注意,视图中的数据不包含 ID 列(或任何唯一列)。

我看到不建议使用游标和 WHILE 循环。

有没有人可以分享一个例子?

0 投票
1 回答
68 浏览

ravendb - 将数组元素添加到集合中的所有文档

我的Foo文档有一个CustomData用于添加用户可配置属性的集合。

有时,当我创建这些属性时,我需要为它们添加默认值以进行索引。

这就是我试图用于此目的的内容:

这会生成以下 HTTP 请求:

这会返回200 OK,但不会修改任何文件。

0 投票
1 回答
56 浏览

sql - 基于低性能集的存储过程

我在 sql 中使用以下基于集合的代码来计算客户账单,但对 40000 条记录执行操作需要 3 分钟!!!让我知道是什么问题???

0 投票
1 回答
69 浏览

mysql - MySQL:根据条件拆分表的最快方法

我有两张桌子:

1) 是所有parameter-id的列表以及parameter-id所属的参数集的信息

2) 是包含一些parameter-id的数据,以及一些额外的数据,例如时间戳和值。

我正在设计一个类似数据仓库的系统。但是,我尝试减少不同报告脚本必须查看以获得结果的数据量,而不是存储预先计算的值的汇总表(这在我的情况下并没有真正意义)。

我想将 table2 中的每一行传输到每组参数的表中,以便最后我有“汇总表”,每组参数一个。哪个参数属于哪个集合保存在table1中。

有没有比遍历 table1 中的每个条目、获取@param_id = ...@tablename = ... 执行 a更快的方法INSERT INTO @tablename SELECT * FROM table2 WHERE parameter_id = @param_id?我读到“基于集合的方法”会比程序方法更快(更好),但我不太明白在我的情况下它是如何工作的。

任何帮助表示赞赏!

0 投票
2 回答
45 浏览

sql - 使用基于集合的方法迭代执行存储过程

我有一个问题,我试图用不同的解决方案替换以下代码。目前我正在使用光标,但它运行缓慢。我的理解是迭代解决方案只能用游标或while循环完成,但我试图找到一种基于集合的方法并且没有想法。我希望我能在这里找到一些灵感。谢谢大家。

0 投票
2 回答
614 浏览

sql - 查询以查找连续行的范围

我有一个包含 2 列 SQL 表转储的文件:int ID(自动增量标识字段)和位标志。flag = 0 表示记录良好,flag = 1 表示记录不良(包含错误)。目标是找到具有 1,000 或更多行的所有连续坏记录块(标志值为 1)。该解决方案不应使用游标或 while 循环,而应仅使用基于集合的查询(选择、连接等)。我们希望查看使用的实际查询和以下格式的结果:

例如,如果我们的数据只有 30 条记录,而我们正在寻找具有 5 条或更多记录的块,那么结果将如下所示(参见下面的屏幕截图,突出显示符合条件的错误块):

[ID 范围].....[块中的错误数]

11-15 ...... 5

19-25 ...... 7

包含示例行的 sql 文件,保管箱

0 投票
2 回答
84 浏览

sql - 删除字符串搜索查询中的 While 循环

我有一个查询,它从 中获取一条记录#itemtemp,并从该匹配项中找到所有条目ReportCSharp,将这些匹配项插入到#link_table. 目前,查询运行时间为 7.5 分钟,这对于仅迭代表中的 1458 条记录来说显得很慢#itemtemp

如何删除WHILE循环并替换为更多基于集合的操作?