首页新闻找找看学习计划

sqlserver中如何取数值相近的几条记录

0
悬赏园豆:5 [已解决问题] 解决于 2013-07-09 14:42

目前在一电子商务平台开发项目中,当前有一需求为给客户推荐所选产品价格相似的产品列表,求大神指导sql语句写法。

如下图

我需要取出与cid为1001的产品价格最相近的3条记录1000,1000,1006.

SQL语句该如何实现?

古道轻风的主页 古道轻风 | 初学一级 | 园豆:13
提问于:2013-07-09 13:35
< >
分享
最佳答案
0
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)
收获园豆:5
TiestoRay | 小虾三级 |园豆:687 | 2013-07-09 14:39

非常感谢 问题解决了

古道轻风 | 园豆:13 (初学一级) | 2013-07-09 14:42
其他回答(2)
0

你将价格(price)设定一个范围,然后再查询在这范围之内的数据。

小生求指教 | 园豆:68 (初学一级) | 2013-07-09 13:39
0

按照1001的价格为切入点,对小于该价格排逆序,取前N条,对大于该价格排正序,去前N条。然后用Union 即可。

幻天芒 | 园豆:36522 (高人七级) | 2013-07-09 13:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册