条件分组子句(sqlite)

时间:2013-08-27 16:39:27

标签: sql sqlite pdo group-by conditional

SELECT声明中,如果GROUP BY col_A col_B = "some_value"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; ?然后在结果中使用那个用于分组的字段?

{{1}}

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您可以为条件添加名称,并在一段时间后致电...

    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;