假设我有下表:
ID | parentID | MoreStuff
1 | -1 | ...
2 | 1 | ...
3 | 1 | ...
4 | 2 | ...
5 | 1 | ...
如何生成 SQL SELECT 语句来确定特定行是否有子行?换句话说,我想知道 ID 1 是否有 child ,在这种情况下它有 3。
我不确定如何创建 SQL 语句:
SELECT ID, hasChildren FROM myTable;
上面 SQL SELECT 语句中的 hasChildren 将替换什么?
最佳答案
无组版:
SELECT MyTable.Id, CASE WHEN EXISTS
(SELECT TOP 1 1 --you can actually select anything you want here
FROM MyTable MyTableCheck
WHERE MyTableCheck.ParentId = MyTable.Id
) THEN 1 ELSE 0 END AS HasRows
FROM MyTable
关于sql - 如何在 SQL 中实现 "hasChildren"SELECT 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1805671/