common-table-expression相关内容

CTE 遍历备份层次结构?

我可以在分层数据模型中找到给定记录的所有子级(请参阅下面的代码),但我不确定如何使用给定的子级 ID 遍历备份父/子链.谁能指出我正确的方向来弄清楚如何做到这一点?这也可以在 Linq to SQL 中实现吗? WITH TaskHierarchy (TaskID, [Subject], ParentID, HierarchyLevel, HierarchyPath) AS(- 基本情况选择任 ..
发布时间:2022-01-07 15:46:34 其他开发

linq-to-sql 中的公共表表达式 (CTE)?

是否可以在 Linq to SQL 中执行公用表表达式 (CTE)(如下所示).我对 CTE 和 Linq to SQL 还很陌生. 我目前没有存储过程(但不以任何方式反对他们)所以我不想为了一个查询而跳到存储过程,除非完全有必要. 这是我在 SQL 中所做的一个例子,我想知道我是否可以在 Linq to SQL 中做: WITH TaskHierarchy (TaskID, [Su ..
发布时间:2022-01-07 15:24:52 其他开发

您可以为公用表表达式创建嵌套的 WITH 子句吗?

WITH y AS (与 x AS (选择 * 从我的表)选择 * 从 x)选择 * 从 y 这样的东西有用吗?我之前尝试过,但我无法让它工作. 解决方案 虽然没有严格嵌套,但您可以使用公共表表达式在后续查询中重用以前的查询. 为此,您要查找的语句的形式是 WITH x AS(选择 * 从我的表),y AS(选择 * 从 x)选择 * 从 y ..
发布时间:2022-01-07 13:17:03 数据库

使用 SQL CTE 打印树

架构如下: 创建表[结构]([StructureId] [uniqueidentifier] NOT NULL,[SequenceNumber] [int] NOT NULL, -- 兄弟姐妹的顺序,每个父母都是唯一的[ParentStructureId] [uniqueidentifier] NULL,约束 [Structure_PK] 主键集群([结构 ID] ASC)) 在 [主要]ALT ..
发布时间:2022-01-05 18:36:59 数据库

带有分页和计数的 SQL Server 查询

我想用分页进行数据库查询.所以,我使用了一个公用表表达式和一个排名函数来实现这一点.看看下面的例子. 声明@table table (name varchar(30));插入@table 值('Jeanna Hackman');插入@table 值 ('Han Fackler');插入@table 值('Tiera Wetherbee');插入@table 值('希拉里奥麦克雷');插入@tab ..
发布时间:2022-01-04 13:10:24 数据库

在 SQL CTE 中调用存储过程

是否允许在 SQL CTE 语句中执行存储过程?我对 sql cte 查询有点陌生... 解决方案 不,抱歉.仅选择语句 如果你需要使用存储过程输出(结果集),那么它就是一个临时表 CREATE TABLE #foo (bar int...)插入 #foo (bar, ...)执行 myStoredProc @param1...-- 更多使用#foo 的代码 ..
发布时间:2022-01-01 11:03:58 其他开发

SQL 2005 CTE 与 TEMP 表在其他表的连接中使用时的性能

我有一个复杂的查询,需要在后续查询中使用(实际上是更新语句).我尝试过使用 CTE 和临时表.与临时表方法相比,使用 CTE 的性能非常糟糕.它类似于 15 秒 vs 毫秒.为了简化测试而不是在后续查询中加入 CTE/Temp 表,我只是从中选择了 *.在这种情况下,它们的表现相同. 我已经查看了两种方法的执行计划,包括后续查询中的连接,然后简单地选择 *.使用 simple select ..

使用 CTE 进行字符串拆分的有效方法

我有一张看起来像的桌子 ID 布局1 你好,世界,欢迎,到,tsql2 欢迎,到,stackoverflow 所需的输出应该是 Id Splitdata1 你好1个世界1 欢迎1 到1 条语句2 欢迎2 到2 堆栈溢出 我已通过以下查询完成此操作 声明@t TABLE(ID INT 身份主键,布局 VARCHAR(MAX))插入@t(布局)SELECT 'hello,world,welc ..

关键字“with"附近的语法不正确...上一条语句必须以分号结尾

我使用的是 SQL Server 2005.我的存储过程中有 2 个 WITH 子句 WITH SomeClause1 AS(选择 ....)WITH SomeClause2 AS(选择 ....) 但是出现错误 关键字“with"附近的语法不正确.如果此语句是公用表表达式或 xmlnamespaces 子句,则前面的语句必须以分号结束. 我有哪些选择?有没有我不知道的分离器? ..

从 CTE 插入

WITH DTL AS(选择 CMPI_CODE,CMN_CDTY_MTRL,CMI_WT_FACTOR,CMI_CNTRCT_RATE,'PL',PRESENT_PRICE,TRM_CODE,ROUND(((NVL(PRESENT_PRICE,1)*CMI_WT_FACTOR)/CMI_CNTRCT_RATE),2) AS PL_FACTOR从 VW_CMD_MATERIAL WHERE TR ..
发布时间:2021-12-30 13:36:40 数据库

SQL 多条件 CTE 递归

我在数据库中为每个标识符提供了以下 2 条信息.控制他们的公司,以及他们拥有少量控制权的公司. 大致上,2个表(忽略一些唯一标识符): 组织 orgid |org_immediate_parent_orgid1 |22 |23 |15 |4 关系 orgid --> org_immediate_parent_orgid 表示公司有父级.对我来说,它只有相关的 org_immedia ..

使用递归查询访问有向图,就好像它是无向图一样

关于访问存储在数据库中的有向图,我需要你的帮助. 考虑下面的有向图 1->22->1,33->1 一个表存储这些关系: 创建数据库测试;\c 测试;创建表所有权(父母 bigint,孩子bigint,主键(父、子));插入所有权(父、子)值(1、2);插入所有权(父、子)值(2、1);插入所有权(父、子)值(2、3);插入所有权(父、子)值(3、1); 我想提取从节点可达的图的所有半 ..
发布时间:2021-12-24 14:34:25 其他开发

防止递归 CTE 多次访问节点

考虑以下简单的 DAG: 1->2->3->4 还有一个表,#bar,描述了这一点(我使用的是 SQL Server 2005): parent_id child_id1 22 33 4//... 其他边,未连接到上面的子图 现在假设我有一些其他任意标准来选择第一条边和最后一条边,即 1->2 和 3->4.我想用这些来找到我图表的其余部分. 我可以按如下方式编写递归 CTE(我使 ..
发布时间:2021-12-24 14:31:38 数据库

最大递归100在语句完成前已用完

我一直收到这个查询的最大递归错误. 起初我认为这是因为返回了一个空值,然后它会尝试匹配导致错误的空值,但是,我重写了我的查询,因此没有返回空值并且错误仍然发生. 重写此函数的最佳方法是什么,以免发生错误 WITH EmployeeTree AS(选择EMP_SRC_ID_NR Id,USR_ACV_DIR_ID_TE Uuid,CASE 员工.APV_MGR_EMP_IDNULL T ..
发布时间:2021-12-20 16:35:39 其他开发

真正的 CTE 递归?

我今天下午刚刚发现 CTE,在享受了 2 个小时之后,我意识到它们并没有像我们在任何其他语言中学到的那样执行常见的递归. 我的意思是,我总是将递归视为树搜索.所以我期待 CTE 一直到它发现的第一片叶子,但没有.他是分层工作的.它从头部开始,然后是所有的树枝,然后是所有的子树枝,等等……然后是叶子. 有没有办法让它以不同的方式搜索?也许我错过了什么......我在 SQL Server ..
发布时间:2021-12-16 08:45:59 其他开发

将 INDEX 添加到 CTE

我可以将 INDEX 添加到公共表表达式 (CTE) 吗? 解决方案 没有 CTE 是一种临时的“内联"视图 - 您不能向此类构造添加索引. 如果您需要索引,请使用 CTE 的 SELECT 创建一个常规视图,并使其成为索引视图(通过向视图添加聚集索引).您需要遵守此处列出的一组规则:创建索引视图. ..
发布时间:2021-12-13 09:04:04 其他开发

SQL 递归 CTE:查找按属性链接的对象

我只是想了解 CTE 和递归,以解决我以前使用游标解决的问题. 创建表##ACC (AccNo int,属性字符)插入##ACC值 (1,'A'),(1,'B'),(2,'A'),(2,'C'),(3,'C'),(4,'D') 我想要实现的是获取所有 AccNo 的列表,以及它们通过 Property 关联的所有 AccNo.所以我的预期结果是 PrimaryAccNo |关联账号1 |11 ..