标签: recursive-query

递归获取Postgres表中树的根ID

我有一个Postgres表users(E_8_User),其中包含User_id作为主键,Boss作为同一个表的外键(它不可为空,如果某些用户没有boss,则其Boss属性= user_id)。我需要为表中的所有用户获取他们的老板,所以我尝试编写 CTE 查询:

WITH RECURSIVE herarchy_reports AS (
    SELECT E_8_User.User_id, E_8_User.Boss, 1 as lvl, E_8_User.User_id as RootUserID
    FROM E_8_User
    WHERE E_8_User.User_id=E_8_User.Boss
    UNION ALL
    SELECT usr.User_id, usr.Boss, lvl+1 as lvl, rep.RootUserID
    FROM herarchy_reports as rep JOIN E_8_User as usr ON
    rep.user_id=usr.Boss
)
SELECT * FROM herarchy_reports ORDER BY RootUserID;
Run Code Online (Sandbox Code Playgroud)

但它不起作用:数据库不断执行查询。我究竟做错了什么?

sql postgresql recursive-query common-table-expression hierarchical-data

1
推荐指数
1
解决办法
603
查看次数

如何将组标识符组合成单个组?

我有一个数据集如下:

;WITH CTE AS
( SELECT *
  FROM (VALUES
(1, 10, 20, 30)
(2, 10, 21, 31)
(3, 11, 21, 31)
(4, 12, 22, 32)
(5, 13, 23, 33)
(6, 14, 24, 33)
(7, 14, 25, 34)
(8, 15, 26, 36)
) AS MyValues(ID, GroupID1, GroupID2, GroupID3)
)
SELECT *
FROM CTE
Run Code Online (Sandbox Code Playgroud)

如何生成以下内容,将各个组折叠成一个组?

ID 单组ID
1 1
2 1
3 1
4 2
5 3
6 3
7 3
8 4

sql sql-server graph-theory recursive-query

1
推荐指数
1
解决办法
129
查看次数

递归变量自赋值有效吗?

我发现了一些 T-SQL 代码,我试图弄清楚它是否是:

\n
    \n
  • 一个我从来不知道的优雅的解决方案
  • \n
  • 一个可怕的令人厌恶的东西碰巧起作用了,绝对应该被移除
  • \n
  • 或介于两者之间。
  • \n
\n

标准化名称

\n

我们有一个要求尝试清理名称:

\n
    \n
  • Bob\xe2\x86\x92Robert
  • \n
  • Bill\xe2\x86\x92William
  • \n
  • Dick\xe2\x86\x92Richard
  • \n
\n

因此创建了一个表来保存该以及将其替换为的值。它包含上述单词(以及更深奥的、特定领域的、特定行业的映射):

\n

填充词

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n
价值用。。。来代替
迪克理查德
账单威廉
鲍勃罗伯特
特德威廉
\n
\n

我看到的用于执行替换的代码要么是天才,要么是疯狂:

\n
DECLARE @firstName varchar(200) = \'bill\';\nSELECT @firstName = REPLACE(@firstName, FillerWords.Value, FillerWords.ReplaceWith) FROM FillerWords;\nSELECT @firstName;\n
Run Code Online (Sandbox Code Playgroud)\n

这使:

\n
(no column name)\n----------------\nWilliam\n\n1 row(s) affected\n
Run Code Online (Sandbox Code Playgroud)\n

更令人印象深刻的是它可以一次进行多个替换: …

t-sql sql-server recursive-query

1
推荐指数
1
解决办法
92
查看次数

将递归转换为迭代代码

我想将递归代码"转换"为迭代代码.例子是:

 public int CalcTime(double AnnualIncome, int Time, double Value)
 {
     if (AnnualIncome / 12 > Value / Time) 
         return Time;
     else
         return CalcTime(AnnualIncome, Time + 1, Value);
 }
Run Code Online (Sandbox Code Playgroud)

我试过但不能......

非常感谢你!

c# recursive-query

0
推荐指数
1
解决办法
140
查看次数

为什么在oracle的"字典管理表空间"中使用"递归sql"?

Oracle文档指出,本地管理的表空间在几个方面优于字典管理的表空间.一个是当数据库在字典管理的表空间中分配空闲块时使用递归sql.表fet $有列(TS#,FILE#,BLOCK#,LENGTH)

任何人都可以解释为什么递归sql用于分配fet $?

oracle recursive-query

0
推荐指数
1
解决办法
265
查看次数

SQL Server - 从分层表中获取根节点

我需要获取分层表的根节点(具有 PARENT_ID = NULL):

ID | PARENT_ID 
60   NULL
21   60
11   NULL
23   11
24   21
25   23
14   24
13   25
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

ID | PARENT_ID | ROOT_ID |
-------------------------
1      NULL       NULL
2         1          1
3         1          1
4         2          1
5         4          1
6       NULL    NULL
7         6          6
8         7          6
Run Code Online (Sandbox Code Playgroud)

CTE是个好方法吗?我怎样才能创建它?

显然我可以有更多的一个根节点。我必须获取每个节点的根节点。

这就是我所做的:

;WITH RCTE AS
(
    SELECT  ID, PARENT_ID, ID as ROOT_ID
    FROM TABLE r1
        WHERE NOT EXISTS (SELECT * FROM TABLE r2 WHERE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server recursion recursive-query common-table-expression

0
推荐指数
1
解决办法
2676
查看次数

Oracle中sql中的树结构.如何在SQL Oracle中显示树,子节点和父节点

我想在SQL中显示一个带有子节点和父节点的树结构.我有一张桌子:

Employee
-------------
ID (int)
FirstName (varchar)
LastName (varchar)
ParentID (int)
Job (varchar)
Run Code Online (Sandbox Code Playgroud)

代表一名员工.ParentID代表员工的经理.我想这个表只有这个结构.

  1. 我想展示整个树的结构.
  2. 我想只显示子节点
  3. 我想只显示父节点

SampleDataImage

sql oracle connect-by recursive-query hierarchical-data

-1
推荐指数
1
解决办法
9160
查看次数

如何将逗号分隔的字符串值转换为 MySQL 中的行?

我在 MySQL 中有一列返回逗号分隔值,我想将该列转换为行。

更好的答案是如何将逗号分隔的参数转换为 mysql 中的行?

select value from table limit 1

回复

价值
本田,activa,快乐,汽车

我希望这个值像这样排列

价值
本田
激活
乐趣

mysql recursive-query

-2
推荐指数
1
解决办法
4271
查看次数