通过将多列组合为列来对Sql表进行排序

时间:2014-12-06 11:35:09

标签: sql sql-server

请帮帮我。我在排序结果时遇到问题。我有一个product表名,其中包含

ProductID, name, price,...

Promotion表格列

PromoID, startDate, EndDate, SalePrice, ProductID,.....

我想按价格检索产品。

我想通过asc和desc对价格进行排序。我想将Product表中的价格列和SalePrice表中的Promotion列作为一列进行排序,因为如果产品处于促销状态,我想向用户显示促销价格。

请问我该如何解决这个问题?是否可以在排序中将多个列组合为一个?

2 个答案:

答案 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.productpricepromo.promoprice等。