我有一个位置表。每个位置存储在此表中作为一棵树。记录可以是任何其他位置的子位置,依此类推。
在我的位置表中,我执行以下 tsql 以生成所有位置及其子位置
WITH LocationTree AS (
SELECT L.* FROM Location L
UNION
SELECT L.* FROM LocationTree LT, Location L where L.ParentLocationID = LT.LocationID
)
SELECT * FROM LocationTree
但这给了我一个错误:
Recursive common table expression 'LocationTree' does not contain a top-level UNION ALL operator.
该错误表明我必须使用UNION ALL而不是UNION但UNION ALL返回重复的行。我想选择不同的行,例如仅使用 UNION 时。
如何在 SQL 的WITH语句中使用UNION关键字?