【发布时间】:2010-08-15 01:53:45
【问题描述】:
我不确定是应该在代码中执行此操作还是在查询中执行此操作,但我会在这里询问,因为我对自己的 sql 解决方案感兴趣。
假设我有下表,我需要获取 ParentSID 为 1 的所有行。但是,如果这些行中的任何一个返回 Null 作为 FID 那么我还需要去获取 ParentSID 是 SID FID 为 Null 的行。
没有限制,它可以继续,并且记录返回的位置可能有 Null 作为 FIDs,我必须找到所有具有其 ParentSID 的行。
----------------------
SID FID ParentSID
1 null null
2 null null
3 16 1
4 17 1
5 null 1
6 18 5
7 19 2
----------------------
我在代码中有迭代解决方案,但我必须多次返回数据库才能获得我感兴趣的完整列表,我确信拥有一个 SQL 过程会更有意义,但我不确定如何做吗?
谢谢,
巫毒
【问题讨论】:
-
SQL Server? MySQL?哪个版本?
-
是否可以有一行 FID = NULL 和 ParentSID != NULL 不链接回 1?如果是这样,也许去规范化是合适的,并且在每行的最终父级中添加 RootParentSID 字段会有所帮助。
标签: sql sql-server tsql sql-server-2008 stored-procedures