SQL 父/子 CTE 排序

2023-11-30

我正在尝试创建一个论坛设置,您可以在其中对特定帖子发表评论,并将回复按日期顺序显示在父级的正下方。父级下面只会有一个子级别。这是示例数据集:

ID.ParentID.Datestamp
12.NULL.2013-03-01 1:00pm
13.NULL.2013-03-01 2:00pm
14.12.2013-03-01 2:20pm
15.12.2013-03-01 2:30pm
16.NULL.2013-03-01 3:30pm

这就是我想要得到的结果:

12.NULL.2013-03-01 1:00pm
14.12.2013-03-01 2:20pm
15.12.2013-03-01 2:30pm
13.NULL.2013-03-01 2:00pm
16.NULL.2013-03-01 3:30pm

我知道我需要某种 CTE,但这不会将子项排序在适当的父项下(显然,因为没有 ORDER BY 子句);我无法弄清楚正确的顺序。任何人都可以提供一些见解吗?

; WITH Messages
AS 
(
    SELECT ID, ParentID, Datestamp
    FROM ForumMessages
    WHERE ParentID IS NULL

    -- Recursive
    UNION ALL 
    SELECT
        t2.ID, t2.ParentID, t2.Datestamp
    FROM
        ForumMessages AS t2
        JOIN Messages AS m ON t2.ParentID = m.ID
)

SELECT ID, ParentID, Datestamp
FROM Messages

对于单层深度,您不需要使用递归 - 尝试:

SELECT ID, ParentID, Datestamp
FROM ForumMessages
order by coalesce(ParentID,ID), Datestamp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 父/子 CTE 排序 的相关文章

  • ActiveRecord 嵌套 SELECT——我可以在没有手动 SQL 的情况下完成它吗?

    我有一张桌子 上面有 除其他外 一个名字和一个等级 我想返回所有唯一名称的集合 但对于返回的每个名称 我想选择排名最高的行 这很简单 有两个嵌套的 SELECT 语句 SELECT FROM SELECT FROM foo ORDER BY
  • SQLite 条件 ORDER BY 中的 DESC

    我需要选择按以下逻辑排序的记录 但是当 DESC 处于条件中时 SQLite 会引发错误 ORDER BY CASE WHEN parentGUID IS NULL THEN datePosted DESC ELSE datePosted
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 仅基于月份和年份的 SQL Server 日期比较

    我无法确定仅根据月份和年份比较 SQL 中的日期的最佳方法 我们根据日期进行计算 由于计费是按月进行的 因此该月的日期会造成更多障碍 例如 DECLARE date1 DATETIME CAST 6 15 2014 AS DATETIME
  • 尝试使用 sql 获取单行结果? [复制]

    这个问题在这里已经有答案了 我正在尝试显示所有员工 ID 我需要这样的结果 emp id 10 11 12 13 14 15 当尝试时 SELECT LISTAGG emp id WITHIN GROUP ORDER BY emp id A
  • 将 5 gig 文件导入表时出错

    我正在尝试批量插入表 use SalesDWH go BULK INSERT dbo npi FROM S tmp npi csv WITH FIELDTERMINATOR ROWTERMINATOR n lastrow 200 first
  • 关系代数 - 笛卡尔积与自然连接?

    我正在准备考试 但未能找到一个可靠的标准来确定笛卡尔积是否x要使用或者如果自然连接 X 是要使用的 我想出了一个粗略的指南 如果您需要投影与要连接的表中的属性同名的属性 则必须使用x并说明要投影的表名称 tableA colname1 ta
  • MySql 复合索引

    我们使用 MySql 作为我们的数据库 以下查询在 mysql 表 大约 2500 万条记录 上运行 我在这里粘贴了两个查询 查询运行得太慢 我想知道更好的复合索引是否可以改善这种情况 你知道最好的综合指数是什么吗 并建议我这些查询是否需要
  • 搜索多个表 (SQL)

    我需要能够有一个 SQL 查询来使用简单的搜索来搜索我的数据库 这是我的表格现在的样子 Table artists id name Table albums id artistID name Table songs id albumID n
  • 如何限制mySQL中的搜索和替换字符串

    我用它来搜索和替换 mySQL 中的字符串 UPDATE products SET prodname REPLACE prodname S S 这些产品包含诸如 TYLENOL TABS 100 S 之类的字符串 我想将其转换为 TYLEN
  • MySQL创建表中的日期格式

    我必须使用 MySql 创建一个表 它可以按以下格式存储日期 我尝试过如下 CREATE TABLE birth date DATE 但它不起作用 因为日期格式是 YYYY MM DD 我该怎么办 谢谢 MySQL 或几乎任何其他数据库 中
  • 有没有适用于 Eclipse 的 SQL 格式化插件?

    我在网上没有找到任何标准的开源 sql 格式化程序 eclipse 插件 我正在使用日食太阳神 我可以找到编辑 gt 格式化SQL但这似乎不起作用 找到一个在http ventralnet blogspot in 2010 11 sql b
  • 从另一个表中选择范围之间的记录

    我有两张桌子 比如说Table1 and Table2 Table1 ID RN 11 1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 10 10 Table2 ID FromRN ToRN 1 1 3
  • sql“LIKE”查询语法

    这个查询有什么问题 string command get pay select Credit from Update Company Credit where Update Date LIKE System DateTime Today T
  • 如果我没有可在 T-SQL PIVOT 中用作聚合函数的列怎么办?

    正如这里所见 http www tsqltutorials com pivot php http www tsqltutorials com pivot php 如果我没有可以执行 SUM 的列怎么办 如何获得数据透视表结果 总有COUNT
  • 查看oracle有关主/外键约束的元数据

    哪个表包含有关约束的详细信息 例如外键引用的表 表 all cons columns all constraints 仅包含约束的名称 这不是很有帮助 我目前正在使用 dbms metadata get ddl 但它不适用于所有数据库 Th
  • SQL Server 'FETCH FIRST 1 ROWS ONLY' 无效使用

    我正在尝试将 Db2 查询转换为 SQL Server 我遇到了一个我不熟悉的构造 仅 FETCH FIRST 1 ROWS 这是在 db2 上运行的查询 select from products series where state xx
  • 需要在SQL Server 2012中自动递增字符串

    考虑 SQL Server 2012 中的表 789 0000000 上面的数字在 SQL Server 2012 中将被视为字符串 但每当我更新记录时 我都需要增加到 1 例如 当我更新记录 1 时 它应该增加到789 0000001 当
  • 子查询在多项选择时返回超过 1 个值的 SQL 错误

    我想要一个临时表 它将使用 select 语句插入值 但每次我运行查询时 总是出现错误 子查询返回超过 1 个值 当查询跟随 gt 或子查询用作表达式时 不允许这样做 该语句已终止 0 行受影响 这很奇怪 因为代码中似乎没有错误 但如果有的
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq

随机推荐

  • 在 Java 中使用 JSch 列出 SFTP 服务器上目录的完整层次结构

    我想使用 JSch 在远程位置显示目录的完整层次结构 该位置有多个文件夹 一个文件夹可能有也可能没有文件 我写的代码 参考SFTP 读取目录中的所有文件 sftpChannel cd remotePath Vector
  • 在二叉树中将 AND 分配给 OR(合取范式)

    我正在尝试转换二叉树 例如 OR Implementation of Operator a specialisation of TreeNode see below A Implementation of TreeNode see belo
  • MYSQL:如何将字符串转换为月份(数字)[重复]

    这个问题在这里已经有答案了 我有几个月的简短版本 JAN FEB MAR etc 并希望将它们转换为各自的数值 1 2 3 etc 另外 我希望能够在数字月份值之间来回更改为 短 月份名称 JAN FEB MAR 和它的长版本 Januar
  • 如何在 iOS 中以编程方式更新 UILabel

    我在更新标签时遇到问题 它不会删除旧值 因此新值位于旧值之上 对此的任何帮助将不胜感激 timer NSTimer scheduledTimerWithTimeInterval 1 target self selector selector
  • Android:CountDownTimer 跳过最后一个 onTick()!

    Code public class SMH extends Activity public void onCreate Bundle b super onCreate b setContentView R layout main TextV
  • 哪个 DLL 有 PathCchAppend?

    我正在尝试有条件地使用 if可用 功能PathCchAppend 我已经从标题中获取了函数签名pathcch h 但是 当我尝试从中获取函数的地址时SHLWAPI DLL 它失败 auto pca GetProcAddress GetMod
  • 使用 jsp 从 POST 表单中提取 100 多个输入数据:还有更好的方法吗?

    我正在编写的 servlet 需要访问所有 100 多个 POST 参数 由表单填写 参数因类型而异 文本 选项 选择等 通过按正确顺序获取参数 servlet 构造了一些实例 Entity稍后将使用以下方法将对象保留在数据库中JPA 有没
  • 使用 LINQ 的情况

    好的 另一个 LINQ 问题 如何使用 LINQ 执行 IN 条件 我有一个 myObject 的 IEnumerable 列表 并且想要执行类似 myObject Description in Help Admin Docs 的操作 我怎
  • 客户端套接字上的 setSoTimeout 不会影响套接字

    我有一个包含三个线程的 Java 应用程序 每个线程打开一个套接字并连接到不同端口上的服务器 建立与服务器的连接后 我在每个套接字上设置了 so timeout 之后线程会阻塞等待 read 只有一个线程在 20 秒后超时 这是我设置的超时
  • 更好地理解查找字符串排列的解决方案 - javascript

    我试图更好地理解递归和函数式编程 我认为一个很好的实践示例是使用递归和现代方法 如简化 过滤和映射 创建字符串的排列 我发现了这段漂亮的代码 const flatten xs gt xs reduce cum next gt cum nex
  • 位字段结构赋值意外行为

    我不知道为什么 但位字段分配没有按预期工作 可能只是一件愚蠢的事情 但我一直无法找到问题所在 非常欢迎任何帮助 typedef struct a unsigned char a1 1 unsigned char a2 3 unsigned
  • Jssor - 如何动态添加幻灯片?

    我必须将图像加载放在客户端 这基本上是在浏览器完成页面请求后 触发 ajax 调用来加载图像列表 然后将幻灯片添加到 sider 容器中 在该 ajax 调用之后 照片数量未知 我尝试构建幻灯片的 html 文本 并将其分配到滑块容器中 然
  • 无法连接到数据库服务器 mysql workbench

    我正在尝试连接到 mysql 工作台 但出现以下错误 错误信息 无法连接到数据库服务器 用户 root 从主机到服务器的连接尝试失败 127 0 0 1 3306 无法打开数据库 请 1 检查mysql是否在服务器127 0 0 1上运行
  • 如何在MvvmCross中绑定View的layout_weight?

    绑定到 View 或任何其他 Android 控件 权重的最简单方法是什么 因为这个属性没有setter 所以我尝试了自定义绑定 但id似乎不起作用 public class ViewWeightCustomBinding MvxAndro
  • 如何在 Watir-WebDriver 中关闭 PhantomJS 的日志记录?

    我在 ruby 1 8 watir 代码中看到很多 PhantomJS 的日志信息 即 INFO 消息 我该如何将其关闭 我从谷歌搜索中得到了Java代码 但没有得到Ruby代码 Java PhantomJSDriver 禁用控制台中的所有
  • Azure 服务主体:为服务主体授予 appRoleAssignment 会更新原始权限的状态

    我正在尝试使用 Microsoft 图形 API 授予管理员对分配权限的同意 我执行的步骤如下 创建定义了 appRoles 数组的应用程序 使用 appId 创建服务主体 为服务主体授予 appRoleAssignment 我运行了 ht
  • 在 C 中创建字符串的方法有什么区别?

    C语言中这两种形式的字符串变量有什么区别 char string1 char string2 还有其他方法吗 非常感谢 char string1 foo string1 是一个指向字符串文字的指针 为了便于论证 它指向存储在程序的只读数据段
  • 向量的向量有哪些问题?

    I ve read that a vector of vectors is bad given a fixed 2nd dimension but I cannot find a clear explanation of the probl
  • iPhone:主屏幕和 App Store 的图标不同

    我想知道 iPhone 上的应用程序图标是否与 Apple App Store 中大版本中显示的图标略有不同 这里简短地讨论过 成功提交 AppStore 的提示 但我想确定是否有人有更多这方面的经验 举个例子 纽约时报 在其应用程序图标中
  • SQL 父/子 CTE 排序

    我正在尝试创建一个论坛设置 您可以在其中对特定帖子发表评论 并将回复按日期顺序显示在父级的正下方 父级下面只会有一个子级别 这是示例数据集 ID ParentID Datestamp 12 NULL 2013 03 01 1 00pm 13