我有一个数据库表,用下面的数据与亲子树层次SQL查询
Id Level parentId Name
1 1 0 ĐẤT NÔNG NGHIỆP
2 1 0 ĐẤT PHI NÔNG NGHIỆP
3 1 0 ĐẤT CHƯA SỬ DỤNG
4 2 1 Đất sản xuất nông nghiệp
5 2 1 Đất lâm nghiệp
6 2 1 Đất nuôi trồng thủy sản
7 2 1 Đất nông nghiệp khác
8 2 2 Đất ở (nông thôn/đô thị)
9 2 2 Đất chuyên dùng
10 2 2 Đất sông, ngòi, kênh, rạch, suối và mặt nước chuyên dùng
11 2 2 Đất phi NN khác
12 2 3 Đất chưa xác định mục đích sử dụng
...
我想写一个查询获取数据,如下列:
由于你看,我有6个关卡。我想获得像上面的序列的所有数据,但所有的数据都是相同的列。 我试过搜索并找到了一个解决方案:[Parent/Child hierarchy tree view 但我很抱歉,因为我不明白这一点。 我试图改变到:
WITH relation(Id, IdCha, TenMucDichSuDung, [level], [orderSequence])
AS
(
SELECT Id,
IdCha,
TenMucDichSuDung,
0,
CAST(Id AS VARCHAR(20))
FROM NhomMucDichSuDungDat
WHERE IdCha = 0
UNION ALL
SELECT p.Id,
p.IdCha,
r.[level] + 1,
CAST(
r.orderSequence + '_' + CAST(p.Id AS VARCHAR) AS VARCHAR(20)
)
FROM NhomMucDichSuDungDat p
INNER JOIN relation r
ON p.IdCha = r.Id
)
SELECT RIGHT('----------', ([level] * 3)) + TenMucDichSuDung
FROM relation
ORDER BY
orderSequence
,但我得到了一个错误:
所有查询使用UNION合并,交叉或EXCEPT运算符必须 在其目标列表中的相同数目的表达式。
大家能帮帮我吗?
请格式化您的文章,以便它是可读的。 – CPMunich
当您比较两个联合查询的SELECT列表中的列数时,您会看到什么? – CPMunich
我得到一个错误,没什么可看的 –