请帮帮我。我在排序结果时遇到问题。我有一个product
表名,其中包含
ProductID, name, price,...
和Promotion
表格列
PromoID, startDate, EndDate, SalePrice, ProductID,.....
我想按价格检索产品。
我想通过asc和desc对价格进行排序。我想将Product
表中的价格列和SalePrice
表中的Promotion
列作为一列进行排序,因为如果产品处于促销状态,我想向用户显示促销价格。
请问我该如何解决这个问题?是否可以在排序中将多个列组合为一个?
答案 0 :(得分:4)
由于您似乎想要单个价格列,请尝试
SELECT
Prod.productID,
ISNULL(Prom.salePrice, Prod.price)
FROM Product Prod
JOIN Promotion Prom
ON Prod.productID = Prom.productID
AND Prom.startDate <= CONVERT (date, GETDATE())
AND Prom.endDate >= CONVERT (date, GETDATE());
答案 1 :(得分:0)
使用查询
select (what you want)
from product
inner join promotion on product.productid = promotion.promoid
order by price, salesprice asc
(您想要的)不应含糊不清,即使用product.productprice
,promo.promoprice
等。