replace content after do a query










0















I need to replace all possible results equal '0' to NULL value.
What's the best option? Use a case statement or replace command in this case:



SELECT name, COUNT(IF(stat='open',1, NULL)) 'open',
COUNT(IF(stat='close',1, NULL)) 'close',
COUNT(IF(stat='all',1, NULL)) 'all',
COUNT(IF(stat='reopen',1, NULL)) 'reopen',
COUNT(IF(stat='finish',1, NULL)) 'finish'
FROM dashboard group by name order by name = 'Party' desc

+----------+------+-------+-----+--------+--------+
| name | open | close | all | reopen | finish |
+----------+------+-------+-----+--------+--------+
| Party | 21 | 0 | 0 | 0 | 0 |
+----------+------+-------+-----+--------+--------+









share|improve this question
























  • Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

    – fubar
    Nov 14 '18 at 23:21











  • like to change '0' to NULL result

    – Guif If
    Nov 14 '18 at 23:28















0















I need to replace all possible results equal '0' to NULL value.
What's the best option? Use a case statement or replace command in this case:



SELECT name, COUNT(IF(stat='open',1, NULL)) 'open',
COUNT(IF(stat='close',1, NULL)) 'close',
COUNT(IF(stat='all',1, NULL)) 'all',
COUNT(IF(stat='reopen',1, NULL)) 'reopen',
COUNT(IF(stat='finish',1, NULL)) 'finish'
FROM dashboard group by name order by name = 'Party' desc

+----------+------+-------+-----+--------+--------+
| name | open | close | all | reopen | finish |
+----------+------+-------+-----+--------+--------+
| Party | 21 | 0 | 0 | 0 | 0 |
+----------+------+-------+-----+--------+--------+









share|improve this question
























  • Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

    – fubar
    Nov 14 '18 at 23:21











  • like to change '0' to NULL result

    – Guif If
    Nov 14 '18 at 23:28













0












0








0








I need to replace all possible results equal '0' to NULL value.
What's the best option? Use a case statement or replace command in this case:



SELECT name, COUNT(IF(stat='open',1, NULL)) 'open',
COUNT(IF(stat='close',1, NULL)) 'close',
COUNT(IF(stat='all',1, NULL)) 'all',
COUNT(IF(stat='reopen',1, NULL)) 'reopen',
COUNT(IF(stat='finish',1, NULL)) 'finish'
FROM dashboard group by name order by name = 'Party' desc

+----------+------+-------+-----+--------+--------+
| name | open | close | all | reopen | finish |
+----------+------+-------+-----+--------+--------+
| Party | 21 | 0 | 0 | 0 | 0 |
+----------+------+-------+-----+--------+--------+









share|improve this question
















I need to replace all possible results equal '0' to NULL value.
What's the best option? Use a case statement or replace command in this case:



SELECT name, COUNT(IF(stat='open',1, NULL)) 'open',
COUNT(IF(stat='close',1, NULL)) 'close',
COUNT(IF(stat='all',1, NULL)) 'all',
COUNT(IF(stat='reopen',1, NULL)) 'reopen',
COUNT(IF(stat='finish',1, NULL)) 'finish'
FROM dashboard group by name order by name = 'Party' desc

+----------+------+-------+-----+--------+--------+
| name | open | close | all | reopen | finish |
+----------+------+-------+-----+--------+--------+
| Party | 21 | 0 | 0 | 0 | 0 |
+----------+------+-------+-----+--------+--------+






mysql sql






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 23:27







Guif If

















asked Nov 14 '18 at 23:10









Guif IfGuif If

459




459












  • Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

    – fubar
    Nov 14 '18 at 23:21











  • like to change '0' to NULL result

    – Guif If
    Nov 14 '18 at 23:28

















  • Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

    – fubar
    Nov 14 '18 at 23:21











  • like to change '0' to NULL result

    – Guif If
    Nov 14 '18 at 23:28
















Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

– fubar
Nov 14 '18 at 23:21





Your query makes no reference to equalling 0. What are you trying to do? Where is this going in your query?

– fubar
Nov 14 '18 at 23:21













like to change '0' to NULL result

– Guif If
Nov 14 '18 at 23:28





like to change '0' to NULL result

– Guif If
Nov 14 '18 at 23:28












2 Answers
2






active

oldest

votes


















2














You can use the NULLIF() function.



SELECT name, 
NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
FROM dashboard
group by name
order by name = 'Party' desc


NULLIF() returns the first value unless it's equal to the second value, then it returns NULL.



BTW, you can simplify COUNT(IF(stat='xxx', 1, NULL)) to SUM(stat='xxx').






share|improve this answer























  • very thanks!!!!!!

    – Guif If
    Nov 14 '18 at 23:41


















1














One method uses NULLIF():



SELECT name,
NULLIF(SUM(stat = 'open'), 0) as open,
NULLIF(SUM(stat = 'close'), 0) as close,
NULLIF(SUM(stat = 'all'), 0) as all,
NULLIF(SUM(stat = 'reopen'), 0) as reopen,
NULLIF(SUM(stat = 'finish'), 0) as finish
FROM dashboard
GROUP BY name
ORDER BY name = 'Party' desc;


Another uses CASE:



SELECT SUM(CASE WHEN stat = 'open' THEN 1 END) as open,
. . .





share|improve this answer






















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310130%2freplace-content-after-do-a-query%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    You can use the NULLIF() function.



    SELECT name, 
    NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
    NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
    NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
    NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
    NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
    FROM dashboard
    group by name
    order by name = 'Party' desc


    NULLIF() returns the first value unless it's equal to the second value, then it returns NULL.



    BTW, you can simplify COUNT(IF(stat='xxx', 1, NULL)) to SUM(stat='xxx').






    share|improve this answer























    • very thanks!!!!!!

      – Guif If
      Nov 14 '18 at 23:41















    2














    You can use the NULLIF() function.



    SELECT name, 
    NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
    NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
    NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
    NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
    NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
    FROM dashboard
    group by name
    order by name = 'Party' desc


    NULLIF() returns the first value unless it's equal to the second value, then it returns NULL.



    BTW, you can simplify COUNT(IF(stat='xxx', 1, NULL)) to SUM(stat='xxx').






    share|improve this answer























    • very thanks!!!!!!

      – Guif If
      Nov 14 '18 at 23:41













    2












    2








    2







    You can use the NULLIF() function.



    SELECT name, 
    NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
    NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
    NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
    NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
    NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
    FROM dashboard
    group by name
    order by name = 'Party' desc


    NULLIF() returns the first value unless it's equal to the second value, then it returns NULL.



    BTW, you can simplify COUNT(IF(stat='xxx', 1, NULL)) to SUM(stat='xxx').






    share|improve this answer













    You can use the NULLIF() function.



    SELECT name, 
    NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
    NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
    NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
    NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
    NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
    FROM dashboard
    group by name
    order by name = 'Party' desc


    NULLIF() returns the first value unless it's equal to the second value, then it returns NULL.



    BTW, you can simplify COUNT(IF(stat='xxx', 1, NULL)) to SUM(stat='xxx').







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 14 '18 at 23:36









    BarmarBarmar

    434k36257359




    434k36257359












    • very thanks!!!!!!

      – Guif If
      Nov 14 '18 at 23:41

















    • very thanks!!!!!!

      – Guif If
      Nov 14 '18 at 23:41
















    very thanks!!!!!!

    – Guif If
    Nov 14 '18 at 23:41





    very thanks!!!!!!

    – Guif If
    Nov 14 '18 at 23:41













    1














    One method uses NULLIF():



    SELECT name,
    NULLIF(SUM(stat = 'open'), 0) as open,
    NULLIF(SUM(stat = 'close'), 0) as close,
    NULLIF(SUM(stat = 'all'), 0) as all,
    NULLIF(SUM(stat = 'reopen'), 0) as reopen,
    NULLIF(SUM(stat = 'finish'), 0) as finish
    FROM dashboard
    GROUP BY name
    ORDER BY name = 'Party' desc;


    Another uses CASE:



    SELECT SUM(CASE WHEN stat = 'open' THEN 1 END) as open,
    . . .





    share|improve this answer



























      1














      One method uses NULLIF():



      SELECT name,
      NULLIF(SUM(stat = 'open'), 0) as open,
      NULLIF(SUM(stat = 'close'), 0) as close,
      NULLIF(SUM(stat = 'all'), 0) as all,
      NULLIF(SUM(stat = 'reopen'), 0) as reopen,
      NULLIF(SUM(stat = 'finish'), 0) as finish
      FROM dashboard
      GROUP BY name
      ORDER BY name = 'Party' desc;


      Another uses CASE:



      SELECT SUM(CASE WHEN stat = 'open' THEN 1 END) as open,
      . . .





      share|improve this answer

























        1












        1








        1







        One method uses NULLIF():



        SELECT name,
        NULLIF(SUM(stat = 'open'), 0) as open,
        NULLIF(SUM(stat = 'close'), 0) as close,
        NULLIF(SUM(stat = 'all'), 0) as all,
        NULLIF(SUM(stat = 'reopen'), 0) as reopen,
        NULLIF(SUM(stat = 'finish'), 0) as finish
        FROM dashboard
        GROUP BY name
        ORDER BY name = 'Party' desc;


        Another uses CASE:



        SELECT SUM(CASE WHEN stat = 'open' THEN 1 END) as open,
        . . .





        share|improve this answer













        One method uses NULLIF():



        SELECT name,
        NULLIF(SUM(stat = 'open'), 0) as open,
        NULLIF(SUM(stat = 'close'), 0) as close,
        NULLIF(SUM(stat = 'all'), 0) as all,
        NULLIF(SUM(stat = 'reopen'), 0) as reopen,
        NULLIF(SUM(stat = 'finish'), 0) as finish
        FROM dashboard
        GROUP BY name
        ORDER BY name = 'Party' desc;


        Another uses CASE:



        SELECT SUM(CASE WHEN stat = 'open' THEN 1 END) as open,
        . . .






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 15 '18 at 0:21









        Gordon LinoffGordon Linoff

        790k35314418




        790k35314418



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310130%2freplace-content-after-do-a-query%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Use pre created SQLite database for Android project in kotlin

            Darth Vader #20

            Ondo