sql 服务器中的 RAND() 函数
RAND() function in sql server
任何人都可以帮助我了解如何在 SQL 服务器中使用 RAND() 函数吗?
我有一个场景,我想根据评分以随机顺序从产品 table 中获取随机产品。
此外,在此我想优先考虑评级较高的产品而不是评级较低的产品。
但并不是每次只有较高评级的产品才会排在首位;有时评级较低的产品应该排在最前面。
截至目前,我是通过NEWID()
完成的,每次都会给我随机顺序,但不考虑产品排名。
Table 列:ProductID, ProductName, Rating
SELECT ROW_NUMBER() OVER(ORDER BY NEWID() ASC) AS ProductOrder, ProductID, Rating
FROM dbo.VIHC_Products
ORDER BY ProductOrder
此查询每次都会给我随机产品,但大多数时候都没有满足我的标准,即评分较高的产品比评分较低的产品高。
只需将行号乘以评级和降序排列即可:
SELECT Rating * ROW_NUMBER() OVER(ORDER BY NEWID() ASC) AS ProductOrder, ProductID, Rating
FROM dbo.VIHC_Products
ORDER BY ProductOrder DESC
任何人都可以帮助我了解如何在 SQL 服务器中使用 RAND() 函数吗?
我有一个场景,我想根据评分以随机顺序从产品 table 中获取随机产品。
此外,在此我想优先考虑评级较高的产品而不是评级较低的产品。
但并不是每次只有较高评级的产品才会排在首位;有时评级较低的产品应该排在最前面。
截至目前,我是通过NEWID()
完成的,每次都会给我随机顺序,但不考虑产品排名。
Table 列:ProductID, ProductName, Rating
SELECT ROW_NUMBER() OVER(ORDER BY NEWID() ASC) AS ProductOrder, ProductID, Rating
FROM dbo.VIHC_Products
ORDER BY ProductOrder
此查询每次都会给我随机产品,但大多数时候都没有满足我的标准,即评分较高的产品比评分较低的产品高。
只需将行号乘以评级和降序排列即可:
SELECT Rating * ROW_NUMBER() OVER(ORDER BY NEWID() ASC) AS ProductOrder, ProductID, Rating
FROM dbo.VIHC_Products
ORDER BY ProductOrder DESC