{"id":179,"date":"2008-03-11T15:02:00","date_gmt":"2008-03-11T18:02:00","guid":{"rendered":"http:\/\/www.soudba.com.br\/?p=179"},"modified":"2008-03-11T15:02:00","modified_gmt":"2008-03-11T18:02:00","slug":"inserir-linha-nula-para-verificar-o-comportamento-das-funcoes-de-agrupamento-no-oracle","status":"publish","type":"post","link":"https:\/\/www.soudba.com.br\/?p=179","title":{"rendered":"Inserir linha nula para verificar o comportamento das fun\u00e7\u00f5es de agrupamento no Oracle"},"content":{"rendered":"<p>Como todos sabem, as fun\u00e7\u00f5es de agrupamento n\u00e3o levam em considera\u00e7\u00e3o os atributos que est\u00e3o com valor NULL nas linhas. Assim fizemos um teste para comprovar a atua\u00e7\u00e3o do count(*). O resultado era esperado que quando utilizassemos a fun\u00e7\u00e3o de agrupamento count(*) ele entao iria verificar que a linha estava nula e nao contabilizasse essa linha. Mas o Oracle armazena duas pseudo colunas que s\u00e3o: ROWID e ROWNUM, e quando executo count(*) estas colunas sao contempladas para efeito de calculo e o retorno de total de linhas inseridas com valor nulo \u00e9 retornado.<\/p>\n<p>SQL&gt; create table TOTO (CODIGO NUMBER);<\/p>\n<p>Tabela criada.<\/p>\n<p>SQL&gt; insert into TOTO VALUES(NULL);<\/p>\n<p>1 linha criada.<\/p>\n<p>SQL&gt; \/<\/p>\n<p>1 linha criada.<\/p>\n<p>SQL&gt; \/<\/p>\n<p>1 linha criada.<\/p>\n<p>SQL&gt; \/<\/p>\n<p>1 linha criada.<\/p>\n<p>SQL&gt; \/<\/p>\n<p>1 linha criada.<\/p>\n<p>SQL&gt; select * from toto;<\/p>\n<p>    CODIGO<br \/>&#8212;&#8212;&#8212;-<\/p>\n<p>SQL&gt; select count(*) from toto;<\/p>\n<p>  COUNT(*)<br \/>&#8212;&#8212;&#8212;-<br \/>         5<\/p>\n<p>SQL&gt;<br \/>SQL&gt; select count(codigo) from toto;<\/p>\n<p>COUNT(CODIGO)<br \/>&#8212;&#8212;&#8212;&#8212;-<br \/>            0<\/p>\n<p>SQL&gt; select rowid, rownum, codigo from toto;<\/p>\n<p>ROWID                  ROWNUM     CODIGO<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>AAAMrXAABAAAOpaAAA          1<br \/>AAAMrXAABAAAOpaAAB          2<br \/>AAAMrXAABAAAOpaAAC          3<br \/>AAAMrXAABAAAOpaAAD          4<br \/>AAAMrXAABAAAOpaAAE          5<\/p>\n<p>SQL&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como todos sabem, as fun\u00e7\u00f5es de agrupamento n\u00e3o levam em considera\u00e7\u00e3o os atributos que est\u00e3o com valor NULL nas linhas. Assim fizemos um teste para comprovar a atua\u00e7\u00e3o do count(*). O resultado era esperado que quando utilizassemos a fun\u00e7\u00e3o de &hellip; <a href=\"https:\/\/www.soudba.com.br\/?p=179\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-179","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"_links":{"self":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=179"}],"version-history":[{"count":0,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/179\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}