select ArticleID, Subject
from Article
where ArticleID in (select distinct top 10 ArticleID
from ArticleRelated
where KeywordID in (select KeywordID
from ArticleRelated
where ArticleID = @ArticleID
)
and ArticleID <> @ArticleID
)
order by ABS(ArticleID-@ArticleID) desc
from Article
where ArticleID in (select distinct top 10 ArticleID
from ArticleRelated
where KeywordID in (select KeywordID
from ArticleRelated
where ArticleID = @ArticleID
)
and ArticleID <> @ArticleID
)
order by ABS(ArticleID-@ArticleID) desc
from Article
where ArticleID in (select distinct ArticleID
from ArticleRelated
where KeywordID in (select KeywordID
from ArticleRelated
where ArticleID = @ArticleID
)
and ArticleID <> @ArticleID
)
order by abs(ArticleID-@ArticleID)
select top 30 identity(int,1,1) as id
into #tp
from syscolumns c1,syscolumns c2 where 1=1--select * from #tpdeclare @i intset @i=8--查询SQL语句
select *
from #tp
where id in (select top 11 id from (select abs(id-@i) as C,id from #tp) T order by C)--删除临时表
drop table #tp
--上面用临时表,只是创建测试数据,完全不用临时表select *
from 表名
where id in (select top 11 id from (select abs(id-@i) as C,id from 表名) T order by C)
找到一点头绪,关键是order by abs(id-@i)的运用,继续研究