Oracle - 使用带有Count的Case语句

时间:2016-03-25 17:11:52

标签: oracle

我有下面的查询,它运行但没有产生我想要的东西。

查询:

select id
,CASE WHEN COUNT(id ) > 1  THEN 'X'
 ELSE  ' ' END AS Dual
from x
group by id

结果:

ID    Dual
1      
1

我想看看:

ID       Dual
1         x
1         x

2 个答案:

答案 0 :(得分:1)

Oracle安装程序

document.getElementById('input').files[0];

<强>查询

CREATE TABLE x ( id INT );
INSERT INTO X VALUES (1);
INSERT INTO X VALUES (1);
INSERT INTO X VALUES (2);

<强>输出

SELECT id,
       CASE WHEN COUNT(1) OVER ( PARTITION BY id ) > 1
            THEN 'X'
            ELSE ' '
            END AS Dual
FROM   x;

答案 1 :(得分:1)

如果你的表x有两行,id = 1,就像你暗示的那样,那么这不是你查询的结果。你不会得到id = 1的两行和group by id子句。请澄清。

refreshControl