在Oracle而不是为每个可能的ORDER BY子句编写一个查询,您可以指定一个DECODE函数来评估用户的选择,并动态地改变ORDERY BY,如下所示:
SELECT . . .
FROM emp
GROUP
BY DECODE(i_grouping_col,'E',emp_no,'D',dept_no);
有没有办法在MongoDB中练习解码功能?
答案 0 :(得分:0)
是的,有db.collection.group()函数可用于执行您要执行的操作,但由于各种限制,它已从mongodb版本3.4中删除。
一个例子是
db.orders.group(
{
key: { ord_dt: 1, 'item.sku': 1 },
cond: { ord_dt: { $gt: new Date( '01/01/2012' ) } },
reduce: function ( curr, result ) { },
initial: { }
}
)
SQL等价物是
SELECT ord_dt, item_sku
FROM orders
WHERE ord_dt > '01/01/2012'
GROUP BY ord_dt, item_sku
您可以阅读更多相关信息Here