Order By 左连接连接的两列不同的表

Order By for two columns of different tables connected with left join

我有两个 table,一个是 tbl1,具有三个字段 gadgetid,weightpriceperday

而第二个 table tbl2 有列 promotionsID,gadgetID,promotionalPrice

两者都与左连接相连,这意味着一些小工具有促销价格,目前我只使用 order by priceperday 但现在我想在 order by 中包含促销价格,例如现在我得到的结果是

gadgetid   priceperday         promotionalprice 

1            32 

9            30

11           26                   23

6            24   

8            21

但我想要的结果如下

gadgetid   priceperday         promotionalprice 

1             32

9             30

6             24

11            26                       23

8             21

目前正在使用这些行进行排序

Select  DT.*
From
( Select
ROW_NUMBER() OVER (ORDER BY

CASE WHEN @SortBy = '1'
THEN (Case when CONVERT(Date, isnull(T.FeaturingStartDate,GETDATE()-1)) <=convert(date,GETDATE()) 
   AND CONVERT(Date, isnull(T.FeaturingEndDate,GETDATE()-1)) >=convert(date,GETDATE()) then 1 else 0 end) END Desc,
CASE WHEN (@SortBy = '2' or @SortBy = '0')
THEN T.PricePerDay END,
CASE WHEN @SortBy = '3'
THEN least(tpf.PromotionalPrice, T.PricePerDay)  END DEsc
,T.CreationTimestamp DESC) AS SysSeq

如有任何帮助,我们将不胜感激。

试试这个:

SELECT gadgetid,priceperday,promotionalprice
FROM YourTable
ORDER BY CASE WHEN ISNULL(promotionalprice,'')='' THEN priceperday 
            ELSE 
                CASE WHEN promotionalprice>priceperday 
                     THEN priceperday 
                ELSE promotionalprice 
                END 
            END

希望一切顺利。如有问题,评论。

我在你当前的尝试中找不到任何 joins,但是根据 o/p 你需要添加 coalesce() 函数并进行排序

order by coalesce(promotionalprice, priceperday) desc