common-table-expression相关内容

CTE 和子查询的区别?

从这篇文章 如何在以下程序? 答案有两种版本,一种使用子查询,另一种使用CTE来解决相同的问题. 那么,与“子查询"相比,使用 CTE(通用表表达式) 有什么优势(因此,可读性 查询实际在做什么) 使用 CTE 而不是 sub-select 的唯一优点是我实际上可以 name sub-query.当 CTE 用作简单(非递归)CTE 时,这两者之间是否还有其他区别? 解决方 ..
发布时间:2022-01-23 15:35:48 数据库

将 SQL Server 中的递归 CTE 转换为 netezza

我有一个要求,比如我需要将 sql server 中的递归 CTE 转换为 netezza! netezza 会支持递归 CTE 吗? 谁能帮我解决这个问题? 提前致谢,马尼拉蒂南. 解决方案 从 7.2 版开始,Netezza 不支持递归 CTE.如果您能告诉我们您在特定情况下要完成的工作,我们可能会提供解决方法/重写. ..
发布时间:2022-01-23 09:58:29 其他开发

如果没有任何其他子项引用,则删除父项

我有一个示例情况:parent 表有一个名为 id 的列,在 child 表中作为外键引用. 删除子行时,如果父行没有被其他子行引用,如何删除父行? 解决方案 在 PostgreSQL 9.1 或更高版本中,您可以使用 数据修改 CTE.这通常不太容易出错.它最小化两个 DELETE 之间的时间范围,其中 竞争条件可能导致并发操作的惊人结果: 与 del_child AS (从孩子 ..

循环更新 - 更好的方法?

我被这个问题困住了.我在想我可能需要一个循环更新(如果存在的话),但也许有更好的方法? 我正在处理索赔药物处方数据,所以基本上是 5 列用户、药物、RxStartDate、DaySupply 和'RxEndDate' = dateadd(dd, DaySupply-1, RxStartDate) 如果同一个用户有 2 个重叠的处方(Rx1 EndDate >= Rx2 StartDat ..

带更新的 sqlite CTE

我希望这不是重复的,我红了一些帖子,但不知道如何解决这个问题. 我有一张这样的桌子 CREATE TABLE yo (ad INTEGER PRIMARY KEY, pa INTEGER, pd INTEGER);插入你的价值观(1,1,1),(2,1,3),(3,1,4),(4,3,5),(5,4,2),(6,3,8),(7,1,9),(8,6,7),(9,3,6);.header on ..
发布时间:2022-01-17 21:04:58 数据库

如何在 SQLite 上使用 CTE 和更新/删除?

SQLite 现在有 CTE,文档 说您可以将它用于插入、更新和删除查询——但是仅给出 select 语句的示例. 我可以通过 insert-select 弄清楚 CTE 如何应用于插入;但是我们如何在没有 from 子句的更新或删除中使用它们? 解决方案 可以在子查询中使用 CTE: WITH NewNames(ID, Name) AS (...)更新我的表设置名称 = (选择名 ..
发布时间:2022-01-17 20:59:35 数据库

在 SQL 中使用 WITH 子句的指南

我了解如何将 WITH 子句用于递归查询 (!!),但我无法理解其一般用途/功能. 例如,以下查询更新一条记录,其 id 是通过使用通过时间戳返回第一条记录的 id 的子查询来确定的: 更新 global.prospect psp设置状态=状态||'*'其中 psp.psp_id=(选择 p2.psp_id来自 global.prospect p2其中 p2.status='new' 或 ..
发布时间:2022-01-17 20:43:33 其他开发

计算顺序事件和序列计数 SQL

我有一个使用找到的答案构建的查询 这里非常有帮助.我添加了一些东西来满足我的需要.我添加的其中一件事是 ROW_NUMBER() 以计算某人在 30 天内在任何时间长度内被重新接纳的次数.我已按照第一个答案和问题 张贴在这里.这并没有解决思想,序列长度和序列计数问题. 这是查询: -- 创建表来存储 CTE 结果声明@PPR 表(VISIT1 VARCHAR(20) -- 这是一个唯一值, ..

简化 CTE 字符串连接?

我有以下代码列表 代码含义1单2 已婚/分居3 离婚4 丧偶8 不适用99 不知道 我正在尝试使用 CTE 将这些扁平化为一行.我有一个 CTE 解决方案,它使用 RowNumber 函数来执行此操作. WITH Flattened (JoinItem, CodeMeaning) AS(选择 1 作为 JoinItem,CAST('' AS VARCHAR(255))联合所有SELECT f ..
发布时间:2022-01-16 23:43:13 其他开发

CTE(通用表表达式)与临时表或表变量,哪个更快?

CTE (Common Table Expression) vs Temp tables or Table variables,哪个更快? 解决方案 在一个特殊情况下,我们将迁移到 CTE 的速度提高了 50%,因此值得一试,但任何与性能相关的增强都需要进行基准测试,因此您可以将一个与另一个进行比较. PS:在获得现在使用的查询之前,我们编写了不止一个带有 CTE 的查询. ..

CTE 和 TEMP 表之间的主要区别是什么?

使用 CTE 的(通用表表达式)而不是使用 temp 表 有什么好处. 我在它们之间进行了性能测试,但我找不到它们之间的太大差异. 使用CTE'S有哪些优缺点? 解决方案 可能CTE和临时表最大的区别就是CTE的执行范围是single SELECT, INSERT、UPDATE、DELETE 或 CREATE VIEW 语句. 基本上你不能像使用临时表一样重用 CTE. ..

加入时 CTE 非常慢

我之前发布过类似的内容,但我现在从不同的方向来处理这个问题,所以我提出了一个新问题.我希望这没问题. 我一直在与 CTE 合作,该 CTE 根据父费用创建费用总和.SQL和细节可以在这里看到: 关于多键表的 CTE 索引建议 我认为我在 CTE 上没有遗漏任何内容,但是当我将它与大型数据表(350 万行)一起使用时遇到了问题. 表 tblChargeShare 包含我需要的 ..
发布时间:2022-01-16 23:15:57 其他开发

我更新到 MariaDB 10.2.20 以使用 CTE.仍然得到“无法识别的语句类型.(靠近 WITH)在 phpMyAdmin 中

我想使用 CTE,所以我更新到 MariaDB 10.2.20.phpMyAdmin 在使用“WITH"时出现错误. 我无法找到此版本不支持“WITH"的原因. MariaDB 从 10.2.1 开始¶公用表表达式 WITH 是在 MariaDB 10.2.1 中引入的. MariaDB 从 10.2.2 开始从 MariaDB 10.2.2 开始支持递归 WITH. ht ..
发布时间:2022-01-15 20:44:33 其他开发

在 Oracle 中创建 CTE

我正在尝试在 Oracle 中创建一个 CTE,它不会从现有表中进行选择,而是将数据插入其中.目前,我正在创建一个表,然后在 query 完成后将其删除.有没有办法创建一个有效地做同样事情的 CTE ?这是我当前的代码: 创建表 RTG_YEARS(年份日期);插入 RTG_YEARS 值 (to_date('2013-01-01', 'yyyy-mm-dd'));插入 RTG_YEARS 值 ..
发布时间:2022-01-09 12:28:06 数据库