<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dia a dia Oracle &#187; case</title>
	<atom:link href="http://www.diaadiaoracle.com.br/category/case/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diaadiaoracle.com.br</link>
	<description></description>
	<lastBuildDate>Mon, 01 Aug 2011 22:36:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Usando CASE no Oracle SQL.</title>
		<link>http://www.diaadiaoracle.com.br/2009/08/04/usando-case-no-oracle-sql/</link>
		<comments>http://www.diaadiaoracle.com.br/2009/08/04/usando-case-no-oracle-sql/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 13:18:00 +0000</pubDate>
		<dc:creator>oracle</dc:creator>
				<category><![CDATA[case]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.diaadiaoracle.com.br/?p=13</guid>
		<description><![CDATA[Fala PessoAll, Bom, conforme prometido no Post anterior, estou aqui para dar uma apimentada na utilização da função DECODE usando SQL Oracle. A funcionalidade que iremos falar hoje é a CASE. Esta funcionalidade é muito boa e dá uma dinâmica muito interessante a comandos SQL, em muitas vezes nos poupando de ter que fazer uma [...]]]></description>
			<content:encoded><![CDATA[<p>Fala PessoAll,</p>
<p>Bom, conforme prometido no Post anterior, estou aqui para dar uma apimentada na utilização da função <strong>DECODE</strong> usando <strong>SQL Oracle</strong>.</p>
<p>A funcionalidade que iremos falar hoje é a <strong>CASE</strong>. Esta funcionalidade é muito boa e dá uma dinâmica muito interessante a comandos <strong>SQL</strong>, em muitas vezes nos poupando de ter que fazer uma <strong>Stored Prodecure</strong> ou uma <strong>Function</strong> para fazer alguma coisa que um simples <strong>SQL</strong> pode resolver.</p>
<p>Para não fugir dos costumes&#8230; vamos ao exemplo.</p>
<p>Suponha que você tenha 3 classificações diferentes para seus vendedores, que funcionam da seguinte forma: Se o cara vendeu entre R$0.00 e R$1,000.00 ele é classificado como &#8220;Ruim&#8221;, se foi entre R$1,001.00 e R$4,000.00 ele é classificado como &#8220;Bom&#8221;, se foi entre R$4,001.00 e R$8,000.00 ele é classificado como &#8220;Ótimo&#8221; e se for acima de R$8,001.00 ele é considerado como &#8220;Fenomenal&#8221;, e você precisa exibir isso no relatório para sua gerência.</p>
<p>Como fazer isso?</p>
<p>Aí você começa a pensar&#8230;<br />
<strong>DECODE</strong>? Não dá&#8230; tenho faixa de valores, e não valores específicos!</p>
<p>Cria uma <strong>View</strong>? Não&#8230; uma view é um mero <strong>Select</strong>, não vai resolver!</p>
<p>Ah&#8230;. claro! Cria uma função!!! Na função eu passo o valor que o cara vendeu e ela me retorna qual a classificação do cara! Perfeito!<br />
É&#8230;. funcionar vai funcionar, mas você tem que criar um <strong>objeto no banco</strong>, tem que criar um <strong>Script</strong>, tem que se preocupar com <strong>Grant&#8217;s</strong> e todos os demais aspectos para que criemos um novo objeto!</p>
<p>Não seria mais simples que no próprio <strong>Select</strong> a gente resolvesse esse problema? SIM!!! Claro!! Porque não. Para isso, vamos usar a funcionalidade <strong>CASE</strong>. Como faríamos isso, para este caso?</p>
<p>Agora sim, cenário montado, vamos ao exemplo (de verdade):</p>
<p><code><br />
select v.nome_vendedor,<br />
ve.mes,<br />
ve.vlr_meta,<br />
ve.vlr_venda,<br />
case<br />
when ve.vlr_venda between 0 and 1000 then<br />
'Ruim'<br />
when ve.vlr_venda between 1001 and 4000 then<br />
'Bom'<br />
when ve.vlr_venda between 4001 and 8000 then<br />
'Ótimo'<br />
when ve.vlr_venda &gt; 8001 then<br />
'Fenomenal'<br />
end classificacao_vendedor<br />
from vendedores v,<br />
vendas     ve<br />
where ve.cod_vendedor = v.cod_vendedor;<br />
and ve.mes          = '07/2009';<br />
</code></p>
<p>Que beleza não? Resolvido nosso provlema! Temos agora em nosso <strong>SQL</strong> a coluna <code>classificacao_vendedor</code> que nos dá a informação que precisamos, sem problemas com criação de função nem nada do tipo!</p>
<p>Bom não? Simples de usar, rápido e tudo quanto é de vantagem!</p>
<p>É isso aí, creio que a partir desse exemplo dá pra &#8220;voar&#8221; bem alto! Agora é só adaptar para sua necessidade e tá tudo certo!!</p>
<p>Espero que gostem e comentem!</p>
<p>Atc.<br />
Gerson Júnior<br />
gerson.vasconcelos@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diaadiaoracle.com.br/2009/08/04/usando-case-no-oracle-sql/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

