2016-04-28 55 views
0

下面是查询:的Python:如何通过动态地订购到RawQuery集

select a.* 
from customers a INNER JOIN 
    (SELECT city,M IN(id) as id 
     FROM customers 
     GROUP BY city 
    ) b 
    ON a.city = b.city AND a.id = b.id; 

我有一个列表,它是动态的,不时。 但为了更好的理解我给了一个样本。

order_field = ['check-in', 'check-out ASC',.....] 

此order_field的设置取决于用户从UI中选择排序方式。 这里我用DB中的列名映射所有传入的字段。

Note: ASC for ascending. This could be like DESC also 

那么我怎样才能得到结果顺序动态适合order_field上的字段。

任何人有任何想法?

回答

0

试试这个。我在sql中声明了order字段。

DECLARE @order_field varchar(15) 
SET @order_field = 'DESC ' 

a.* 
from customers a INNER JOIN 
(SELECT city,M IN(id) as id 
    FROM customers 
    GROUP BY city 
) b 
ON a.city = b.city AND a.id = b.id; 
ORDER BY CASE WHEN @order_field ='ASC' THEN a.city END, 
      CASE WHEN @order_field ='DESC' THEN a.city END DESC