1

SELECT语句中,是否有可能GROUP BY col_Aif col_B = "some_value", else GROUP BY col_C?那么有用于在结果中分组的字段吗?

SELECT value_of_the_column_used_for_group 
   FROM table WHERE ... 
   GROUP BY (IF col_B = "some_value" : col_A : ELSE : col_C)
   LIMIT 0, 20;

基本上,我想选择具有不同父项的子记录或具有不同 ID 的父记录。但我想选择父 ID,它可以是子记录中的 ID 列或“parent_ID”列

4

2 回答 2

3

你,你可以使用一个case语句:

SELECT (case when col_B = 'some_value' then col_A ELSE col_C end) 
FROM table WHERE ... 
GROUP BY (case when col_B = 'some_value' then col_A ELSE col_C end)
LIMIT 0, 20;
于 2013-08-27T16:41:00.087 回答
1

您可以为您的条件添加一个名称并在一段时间后调用...

    SELECT (case when col_B = 'some_value' then col_A ELSE col_C end AS 'CONDITION')
    FROM table WHERE ...
    GROUP BY CONDITION
    LIMIT 0, 20;
于 2015-07-17T23:51:18.720 回答