在SQL中,可以使用游标来迭代行,但是如果想要不使用游标的方式来迭代行,可以使用以下几种方法:
WITH RECURSIVE cte AS (
SELECT id, name, parent_id, 1 AS level
FROM your_table
WHERE parent_id IS NULL
UNION ALL
SELECT t.id, t.name, t.parent_id, cte.level + 1
FROM your_table AS t
INNER JOIN cte ON t.parent_id = cte.id
)
SELECT id, name, parent_id, level
FROM cte;
SELECT t1.id, t1.name, t1.parent_id, t2.level + 1
FROM your_table AS t1
JOIN your_table AS t2 ON t1.parent_id = t2.id;
SELECT id, name, parent_id, (
SELECT level + 1
FROM your_table
WHERE id = t.parent_id
) AS level
FROM your_table AS t;
这些方法都可以在不使用游标的情况下迭代行,根据具体的需求和数据结构,选择适合的方法来实现。
下一篇:不使用游标更新每个选择行的结果