使用SQL Server查询中的多个WHERE OR表达式

时间:2014-09-11 15:29:29

标签: sql sql-server

我这里有选择多个表达式的查询

SELECT * FROM tbProducts WHERE
(PRICE BETWEEN 4590 AND 5100) AND RATING = (SELECT MAX(RATING) FROM tbxProducts) AND 
(PRICE = (SELECT MAX(PRICE) FROM tbxProducts))

这些是来自tbProdcts的列

| PRODUCT_NAME | DESCRIPTION | RATING | PRICE |

但问题是该表无法显示范围为4590到5100

的任何项目

之后。我还会选择一个项目的最大费率和最大价格与该价格范围

如何使用正确的查询来完成?

感谢高级:)

2 个答案:

答案 0 :(得分:0)

你需要限制

的输出
SELECT MAX(PRICE) FROM tbxProducts 

类似

SELECT MAX(PRICE) FROM tbxProducts t where t.PRICE BETWEEN 4590 AND 5100

答案 1 :(得分:0)

这应该以更直接的方式做你所要求的。

它将返回评分最高的项目。如果有多个项目具有相同的最高评级,它将使用最高价格作为平局。

SELECT TOP 1 * 
FROM tbProducts 
WHERE price BETWEEN 4590 AND 5100
ORDER BY rating DESC, price DESC