简体   繁体   English

CASE,当column1为NULL时则为NULL ELSE column2结束

[英]CASE WHEN column1 IS NULL THEN NULL ELSE column2 END

I am simply fetching total number of upvote in comment table, but want the last row to print NULL in the content column. 我只是在comment表中获取upvote总数,但希望最后一行在content列中打印NULL

Following is the simple query I am trying to run: 以下是我尝试运行的简单查询:

SELECT
    id
    , content -- THIS IS JUST TO COMPARE, WE DON'T NEED THIS
    , (CASE WHEN id IS NULL THEN NULL ELSE content END) as editedContent -- WE NEED THIS(WITH NULL VALUE IN THE END)
    , SUM(upvote)
FROM `test`.`comment`
GROUP BY id WITH ROLLUP

OUTPUT: OUTPUT:

+------+-------------+---------------+-------------+
| id   | content     | editedContent | SUM(upvote) |
+------+-------------+---------------+-------------+
| 26   | Content13-2 | Content14-1   |           2 |
| 27   | Content14-1 | Content14-2   |           2 |
| 28   | Content14-2 | Content15-1   |           2 |
| 29   | Content15-1 | Content15-2   |           3 |
| 30   | Content15-2 | Content15-2   |           2 |
| NULL | Content15-2 | Content15-2   |          55 |
+------+-------------+---------------+-------------+
6 rows in set (0.00 sec)

Expected Output: 预期产量:

+------+-------------+---------------+-------------+
| id   | content     | editedContent | SUM(upvote) |
+------+-------------+---------------+-------------+
| 26   | Content13-2 | Content13-2   |           2 |
| 27   | Content14-1 | Content14-1   |           2 |
| 28   | Content14-2 | Content14-2   |           2 |
| 29   | Content15-1 | Content15-1   |           3 |
| 30   | Content15-2 | Content15-2   |           2 |
| NULL | Content15-2 | NULL          |          55 |
+------+-------------+---------------+-------------+
6 rows in set (0.00 sec)

Try following, 尝试跟随,

SELECT
    id
    , content -- THIS IS JUST TO COMPARE, WE DON'T NEED THIS
    , (CASE WHEN id IS NULL THEN NULL ELSE content END) as editedContent -- WE NEED THIS(WITH NULL VALUE IN THE END)
    , SUM(upvote)
FROM `test`.`comment`
GROUP BY id 

Union all

select 
    'null',
    'null',
    'null',
    SUM(upvote)
from comment

try this query 试试这个查询

SELECT
    id
    , content -- THIS IS JUST TO COMPARE, WE DON'T NEED THIS
    , (CASE WHEN id IS NULL THEN id ELSE content END) as editedContent -- WE NEED THIS(WITH NULL VALUE IN THE END)
    , SUM(upvote)
FROM `test`.`comment`
GROUP BY id WITH ROLLUP

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM