我不确定在SQL Server的数据库中是否可以这样做?
说,我有一张桌子:
id INT
nm NVARCHAR(256)
cid INT --references [id]
Run Code Online (Sandbox Code Playgroud)
和假设数据:
id nm cid
1 Name 1 0
2 Name 2 0
3 Name 3 1
4 Name 4 3
5 Name 5 2
6 Name 6 4
7 Name 7 2
Run Code Online (Sandbox Code Playgroud)
选择的逻辑应如下:
说,我们有原始ID,我们称之为N.
然后我们有一个查找ID,我们称之为X.然后我们做:
SELECT [cid] FROM [TableName] WHERE [id]=X
Run Code Online (Sandbox Code Playgroud)并检查结果是否等于N.如果是,则返回该记录的[nm].如果结果为0,那么我们返回Null.如果结果是别的我们做同样的选择,除了X现在是结果值.
我显然可以用C#来做这件事,但我很好奇是否有可能在纯SQL语句中结束?
PS.只是用上面的表格来说明这一点,如果N是1而X是6,那么我们得到:
SELECT [cid] FROM [TableName] WHERE [id]=6 --results is 4 (not N or 0, then continue)
SELECT [cid] FROM [TableName] WHERE [id]=4 --results is 3 (not …Run Code Online (Sandbox Code Playgroud)