日期:2014-05-18  浏览次数:20599 次

【数据库问题】,如何实现以下功能
C# code

    id          name         档案号
    1           统称          null
    2           小李          1
    3           小崔          2
    4           小张          3
    5           小赵          4





当我传入档案号为2时 呈现如下数据
  id name 档案号
  1 统称 null
  3 小崔 2

当我传入档案号为4时 呈现如下数据
  id name 档案号
  1 统称 null
  5 小赵 4


当我传入档案号为10时 呈现如下数据
  id name 档案号
  1 统称 null

因为档案号为10 是不存在的 所以只读取档案号为null的 


请高手为小弟解答下!谢谢

------解决方案--------------------
SQL code
--当我传入档案号为2时 呈现如下数据
--  id name 档案号
--  1 统称 null
--  3 小崔 2

--当我传入档案号为4时 呈现如下数据
--  id name 档案号
--  1 统称 null
--  5 小赵 4


--当我传入档案号为10时 呈现如下数据
--  id name 档案号
--  1 统称 null

--因为档案号为10 是不存在的 所以只读取档案号为null的  


--请高手为小弟解答下!谢谢
declare @tb table (id int,name nvarchar(32),dn int)
insert into @tb select 1,'统称',NULL 
UNION ALL SELECT 2,'小李',1
UNION ALL SELECT 3,'小崔',2 
UNION ALL SELECT 4,'小张',3
UNION ALL SELECT 5,'小张',4

 declare @id int
 set @id=4
select * from @tb where dn = @id
union all
select * from @tb where dn is null


id          name                             dn
----------- -------------------------------- -----------
5           小张                               4
1           统称                               NULL

(2 行受影响)