使用 SQL 查询的树视图

2023-12-29

我有一个区域表,我想要一个树视图(表简单地按树排序)是否可以使用sql查询帮助表示赞赏,我尝试使用自连接来做到这一点,但我没有得到所需的结果。

树视图是这样的

Indiv

  • Div1
    • Zon1
  • div2
    • zon2
  • div3
    • zon3

EDIT:

根据 Charles Bretana 的建议,我在下面的查询中尝试了 CTE,但它没有给我想要的结果。

WITH Emp_CTE (id, ParentID, name)
AS (
SELECT id, ParentID, name
FROM eQPortal_Region
WHERE ParentID=0
UNION ALL
SELECT e.id, e.ParentID, e.name
FROM eQPortal_Region e
INNER JOIN Emp_CTE ecte ON ecte.id = e.ParentID
)
SELECT *
FROM Emp_CTE
GO

这就是结果..出了什么问题?

InDiv1

  • Div1
  • Div2
  • Div3
    • Zon3
    • Zon2
    • zon1

这家伙莫里克·多拉吉亚完美回答了问题...

http://maulikdhorajia.blogspot.com/2012/06/sql-server-using-ctecommon-table.html http://maulikdhorajia.blogspot.com/2012/06/sql-server-using-ctecommon-table.html

制作了查询的副本..

;WITH CTECompany
AS
(
    SELECT 
    ID, 
    ParentID, 
    Name , 
    0 AS HLevel,
    CAST(RIGHT(REPLICATE('_',5) +  CONVERT(VARCHAR(20),ID),20) AS VARCHAR(MAX)) AS OrderByField
FROM Region
WHERE ParentID = 0

UNION ALL

SELECT 
    C.ID, 
    C.ParentID, 
    C.Name , 
    (CTE.HLevel + 1) AS HLevel,
    CTE.OrderByField + CAST(RIGHT(REPLICATE('_',5) +  CONVERT(VARCHAR(20),C.ID),20) AS VARCHAR(MAX)) AS OrderByField
FROM Region C
INNER JOIN CTECompany CTE ON CTE.ID = C.ParentID
WHERE C.ParentID IS NOT NULL


)

-- Working Example
SELECT 
ID
, ParentID
, HLevel
, Name
, (REPLICATE( '----' , HLevel ) + Name) AS Hierachy
FROM CTECompany
ORDER BY OrderByField
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SQL 查询的树视图 的相关文章

  • 有没有好的 LINQ 方法来计算笛卡尔积?

    我有一个像这样的类结构 Person Dogs dog 1 dog 2 etc Puppies puppy A puppy B etc 有一个人 他有 1 n 只狗 每只狗有 1 n 只小狗 我想要一份所有可能的小狗组合的列表 从每只狗中取
  • SQL 中的双冒号 `::` 表示法

    我捡到了某人的代码 以下是其中的一部分WHERE条款 这里的双冒号表示什么 b date completed gt a dc date INTERVAL 1 DAY 7 20 00 它根据 RDBMS 的不同而有所不同 但如果我猜对的话 那
  • postgres union 是否保证调用有副作用的函数时的执行顺序?

    我正在使用 postgres 9 3 并尝试确保从 sql 语句调用时按顺序调用存储过程 以下操作是否有效 确保首先调用 foo 然后调用 bar select null void from select 1 from foo union
  • 将一个表的所有行复制到另一个表

    我有两个数据库MySQL and SQL Server 我想在其中创建表SQL Server并复制表中的所有行MySQL到新表中SQL Server 我可以在中创建表SQL Server与 一样MySQL 使用以下代码 List
  • Oracle SQL 上的条件 SUM

    我通过以下方式获得数据 ITEM LOCATION UNIT RETAIL QUANTITY 100 KS 10 10 200 KS 20 30 我想要正数量的总和 数量 gt 0 和负数量的总和 数量 如何根据条件获得这些列的总和 您可以
  • 如何将H2数据库文件存储到项目目录中

    当我使用H2数据库时 数据库文件存储在C Users MyName TestDataBase db目录 H2路径是jdbc h2 TestDataBase 这是默认的 H2 数据库路径 是否有可能像这样将 H2 数据库文件存储到我的项目目录
  • App Engine 日志中的 /_ah/queue/__deferred__

    我有一个使用 Google Cloud SQL 的 App Engine 应用程序 并且从我的应用程序的页面中我正在执行一些数据库操作 每当访问此页面时 它都无法执行所有数据库操作 当我进入控制台时 我看到的只是 ah queue defe
  • C# 中的多个 SQL 查询将变量作为列返回

    我正在开展一个创建注册系统的学校项目 我选择的数据库方法是使用 T SQL 因为它是我已经熟悉的东西 我正在使用下面的代码来查询数据库 public void button3 Click object sender EventArgs e
  • 选择另一个表连接的每行的最小值

    我有下表 Table1 Table2 CardNo ID Record Date ID Name Dept 1 101 8 00 11 7 2013 101 Danny Green 2 101 13 00 11 7 2013 102 Tan
  • 为什么Mysql在连接另一个表B时对表A使用全表扫描?

    我有一个表 A 和一个表 B 我正在从表 A 中选择信息 其中我只需要表 A 中的信息 其中表 B 联接表 A 我在联合列和 WHERE 子句上有索引 这是选择代码 SELECT FROM tableA INNER JOIN tableB
  • R 中的 sqlSave 创建数据帧并将其保存到 SQL 表

    您好 我正在使用 R 将数据框保存到 DB2 SQL 表中 我似乎能够创建表骨架 但无法将数据附加到表中 gt df lt read csv dat csv 其中 dat csv 是没有标题的 csv 只有两列中的原始数据 然后我创建表 g
  • 我怎样才能从表中获得第一个免费ID

    我有一个带有主键字段 ID 的表 我不想使用身份 因为我需要为用户提供手动为新对象选择 ID 的可能性 所以我的想法是 默认情况下 在编辑视图中 ID 字段将为 0 如果用户不更改它 我需要找到第一个免费ID并使用它 如果用户更改 ID 我
  • 实体框架 LINQ To Entities 生成奇怪的慢速 SQLWhere 子句

    我需要理解这一点 EF5 0 和 EF6 在 TSQL 代码生成方面存在很大差异 在我的代码中 这是我的 LINQ 语句 var qry2 context viw overview 1 Where i gt i article EAN17
  • 查找分区内最大的连续数字组

    我有以下按player id 和match date 排序的数据 我想找出连续运行次数最多的记录组 从2014 04 03到2014 04 12连续3次运行4次 player id match date runs 1 2014 04 01
  • BigQuery 中的 EXP() 返回浮点错误

    我有以下查询 SELECT EXP col FROM project dataset tablename Where col is FLOAT 但是 我收到此错误 Error Floating point error in function
  • 实体框架中的级联更新

    我有以下涉及 2 个类的场景 public class Parent Key public int Id get set Other properties here public virtual IList
  • 如何清除 SQL Server 2005/2008 中的查询执行统计信息

    基于使用从这篇文章中获得的这段非常有用的 SQL 来获取查询执行统计信息最常执行的存储过程 代码日志 https stackoverflow com questions 1942726 most executed stored proced
  • 在SSIS中导入已合并单元格的Excel

    我的问题是在读取合并 组合列单元格的 Excel 文件时 例如 将下面的excel数据读取到数据库中 Excel 输入 ID NAME DEPT FNAME LNAME 1 Akil Tiwari IT 2 Vinod Rathore IT
  • 为什么sql表名中通常使用下划线而不是驼峰式大小写[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 基于 MySQL 中的另一列创建计算列

    我的表中有 2 列 varchar 8 and an int 我想要auto increment the int column当我这样做时 我想将值复制到varchar 8 column 但用 0 填充它直到它达到 8 个字符长 因此例如

随机推荐

  • 模板专业化是否扩展或覆盖通用模板?

    template
  • 让 Android 应用程序监听共享链接

    当用户共享来自其他应用程序 如浏览器 的 URL 时 我希望我的 Android 应用程序显示为选项 我如何注册我的应用程序来做到这一点 我该如何对链接共享做出反应 多谢 Edit 我尝试过像这样使用 IntentFilter 但没有成功
  • 如何使用audio_service和just_audio在Flutter中查找当前歌曲时长

    当您设置MediaItem in 音频服务 https pub dev packages audio service你还不知道歌曲时长 因为只是音频 https pub dev packages just audio目前还没有任何更改可以告
  • jQuery 与 ExtJS 兼容吗?

    我相信 Ext js 使用了 jQuery 但我不确定 有谁知道是否与 jQuery 和 Ext js 完全兼容 Ext js 完全独立于 jQuery 因此不以任何方式依赖 jQuery 不知道 完全兼容性 是什么意思 但您可以在同一页面
  • Xcode UI 测试允许系统警报系列

    我有问题 如果我尝试允许系列系统警报 只工作一次 而下一个警报不 允许 我在谷歌上搜索了更多时间 并且知道了那个帖子 Xcode 7 UI 测试 如何在代码中消除一系列系统警报 https stackoverflow com questio
  • 我们可以在同一个 EAR 中跨 Web 应用程序共享 CDI @ApplicationScoped bean 实例吗?

    我有一个 JavaEE 应用程序 它有 2 个 Web 应用程序 我还有另一个库 Web 模块 其中包含 common bean 注释为 ApplicationScoped 我的问题是 我可以在两个 Web 应用程序之间共享 common
  • 浏览器如何判断是下载还是显示

    我有一个 Web 资源 它返回 json 内容Content Type application json 通常内容会直接显示在浏览器中 但有时不会 而是显示下载提示 我知道有一个标题Content Disposition inline at
  • jQuery:如何在单击缩略图时显示图像弹出窗口?

    在我的 aspx 页面中 我有一个缩略图 img 当用户单击该图像时 我希望显示一个弹出窗口 用较大 完整 版本的图像遮挡 UI 的其余部分 有没有任何插件可以做到这一点 有很多 jQuery 插件可用于此 Thickbox http co
  • Google Play 商店是否支持华为 HMS?

    我有一个带有常见谷歌广告和应用内支付功能的应用程序 它已被 Play 商店接受 现在我想让它同时支持GMS和HMS 根据适当服务的可用性 应用程序可以决定使用哪个平台 该应用程序内置了华为功能 在我自己的设备上测试时运行良好 然而 一旦华为
  • @Inject 通过 URL 将参数传递给 CDI @Named bean

    如果我无法将 ManagedProperty 注释与 Named 一起使用 因为 ManagedProperty 在 CDI 中不起作用 那么如何将 URL 中的参数传递给 Facelets 客户端 在我的代码中 我想通过 后退 和 前进
  • 使用 React.JS 导入 SVG 的最佳方法是什么

    我和我的团队正在构建一个 React 应用程序 我们希望导入 SVG 而不是作为字符串 这样我们就能够将其用作组件 由于我们使用 CRA 安装了该项目 因此 SVGR 已安装并处于 webpack 配置中 我们想知道是否有其他方法可以导入
  • utf-8 邮件 php 希腊字符

    我在我的网站中创建一个表单 我希望客户能够编写和发送希腊字符 但在邮件中我收到类似这样的内容 而不是希腊字符 我尝试使用以下代码将编码更改为 UTF 8 mail recipient subject UTF 8 B base64 encod
  • 有没有办法排除 docusaurus 中 docs 目录中的路径?

    我想从其中排除子文件夹docs 生成文档页面的目录 customDocsPath https docusaurus io docs en site config customdocspath string是一个相关选项 但它是一个字符串 是
  • Three.js - 相机的良好 z 距离,可实现盒子的全视图

    我使用 Three js 显示尺寸为 700x700 的场景 在此场景中 我生成了一个随机位置在 250 到 250 之间 对于 x y z 的粒子系统 因此盒子的大小为 500x500 为了计算相机的正确距离 为了适应盒子的完整视图 我尝
  • 如何在 EditItemTemplate 字段中绑定 GridView 中的 DropDownList?

    这是我在运行时绑定的 gridview 中的代码
  • 我应该如何在 Visual Studio 中使用调试/发布模式?

    我通常在工作机器上本地测试代码 然后将其移至开发环境 最后移至生产环境 对于这种情况 使用调试 发布模式的最佳方法是什么 我只需要关心我的机器中的调试模式吗 我应该将调试模式还是发布模式发布到开发中 我知道我可能应该使用发布模式发布到生产环
  • Django Rest Framework - 当用户不是对象所有者时拒绝用户推送

    目前 我设置了权限 如果用户不是对象所有者 则可以阻止他们进行 GET DELETE 和 PUT 操作Stock 但由于某种原因 当用户执行 PUSH 时 权限不起作用 即任何用户都可以 PUSHNote to a Stock即使他们不是S
  • 在 Docker 中运行 Angular2 应用程序

    我正在尝试在 docker 中运行我的 ng2 应用程序 我有 Docker 文件 FROM ubuntu latest RUN apt get update Install curl git RUN apt get qq y instal
  • 使用 Firebase 编写异步代码

    我正在尝试创建一个算法 该算法创建 12 个结构对象 问题 并将它们放入一个数组 问题 中 但是 它似乎不起作用 因为对象是在 Firebase 中的数据能够修改它们之前创建的 我试图使它们异步 但我在网上发现没有任何效果 提前致谢 let
  • 使用 SQL 查询的树视图

    我有一个区域表 我想要一个树视图 表简单地按树排序 是否可以使用sql查询帮助表示赞赏 我尝试使用自连接来做到这一点 但我没有得到所需的结果 树视图是这样的 Indiv Div1 Zon1 div2 zon2 div3 zon3 EDIT