DECLARE @price INT DECLARE @CID INT SET @CID = 1001 SELECT @price = Price FROM XXTable WHERE cid= @CID SELECT TOP 3 cid, cname FROM XXTable WHERE cid <> @CID ORDER BY abs(price-@price)
非常感谢 问题解决了
你将价格(price)设定一个范围,然后再查询在这范围之内的数据。
按照1001的价格为切入点,对小于该价格排逆序,取前N条,对大于该价格排正序,去前N条。然后用Union 即可。