0

我有一个只有一层深的产品表。意思是,我没有孩子的孩子。我的表结构示例是,

ID Name ParentID
----------------
1   A     NULL
2   B     1
3   C     NULL
4   D     3
5   E     1

现在我的输入是 ID = 1,它应该给我,

ID Name ParentID
----------------
1   A     NULL
2   B     1
5   E     1

如果输入是 ID = 2,它应该给我,

ID Name ParentID
----------------
1   A     NULL
2   B     1
5   E     1

如果输入是 ID = 3,它应该给我,

ID Name ParentID
----------------
3   C     NULL
4   D     1

因为2没有孩子,所以我选择了兄弟姐妹

4

1 回答 1

1

请试试:

declare @var int
set @var=2

select top 1 @var=ISNULL(Parentid, id) from YourTable where ID=@var

select 
  * 
From 
  YourTable 
where
  ID=@var

union all

select 
  * 
From 
  YourTable 
where
  ParentID=@var

SQL 小提琴演示

于 2013-11-14T12:23:02.070 回答