Olá pessoal sei que o assunto é desgastante mas estou trabalhando em uma empresa e trabalho com oracle preciso muito da ajuda de vocês e como notei que esse forum todas as duvidas são respondidas então:
pessoal primeiro gostaria de saber como se trabalha ou aplica o DECODE?
Quando e como usar o NVL?
Porque usar e quando e como usar o GROUP BY?
Pessoal se não for pedir muito poderia ser bem passo a passo para leigo mesmo valeu.
Obrigado de verdade
DECODE NVL e por incrivel GROUP BY
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Dá uma procurada aqui no fórum:
http://www.glufke.net/oracle/search.php
Vai achar todas elas.
(Tópico movido para SQL)
Alguns exemplos:
Dá uma procurada aqui no fórum:
http://www.glufke.net/oracle/search.php
Vai achar todas elas.
(Tópico movido para SQL)
Alguns exemplos:
-- O primeiro valor é o valor à ser comparado
-- O segundo valor, é a primeira condição à se verificar.
SELECT DECODE(2,1,'Igual','Diferente')
FROM dual;
-- NVL: Troca o Nulo pelo valor que você informar.
SELECT NVL(campo, 1)
FROM dual;
-- Group By: Agrupar
-- Soma tdos os salários, por empregado, por exemplo.
SELECT ENAME,
SUM(SAL)
FROM EMP
GROUP BY ENAME;
-
- Rank: Analista Júnior
- Mensagens: 90
- Registrado em: Qui, 23 Ago 2007 3:40 pm
- Localização: São José do Rio Preto - SP
Fala kara... beleza???
Seguinte... eu não tenho muito conhecimento nesse assunto mas vou tentar esclarecer um pouco pra tu... ou então confundir mais ainda tua cabeça! kkkkk...
mais vamo lá!
### DECODE ###
--Olha... o decode é usado como um "CASE"... ele é muito útil no "Reports"... quando você quer fazer uma ligação entre "querys", se você usar o "CASE" o reports não aceita a ligação... então utiliza-se o "DECODE"... a sintaxe é a segunte:
-- Onde:
---------- X - É a coluna que vai estar sendo testada...
---------- VAL - São os valores da condição...
---------- 'RETORNO' - São as respostas... caso a condição seja verdadeira
---------- 'RETORNO-ELSE' - Sempre o último retorno... que não possui condição... é como um "ELSE" no case... ele é retornado caso nenhuma das condições sejam verdadeiras.
-- o "DECODE" é muito útil e acho ele muito mais pratico que o "CASE"...
### NVL ###
--Bom... o "NVL" é usado para quando um valor for "NULL" ele retorna um valor alternativo... é muito utilizado em "RELATÓRIOS"... Sabe... quando tu faz uma tela para chamar um Relatório de Clientes por exemplo... Então o Usuário seleciona o Cliente desejado... e o sistema exibe o relatório do cliente selecionado... Porém... se o usuário "NÃO SELECIONAR NENHUM CLIENTE" o sistema deve retornar o RELATÓRIO geral de todos os clientes... então Usa-se o NVL para comparar o "ID" do Cliente... com o "ID" informado no Formulário do Relatório... caso o "ID" informado seja "NULL" (Não informou)... O NVL traz um valor alternativo... O proprio "ID" que fará com que todos os Clientes Sejam Selecionados:
EX:
-- Neste caso... se o :ID_PASSADO_POR_PARAMETRO for "NULL" ele compara o "C.CLI_ID" com o mesmo "C.CLI_ID"... retornando todos os clientes....
-- Sintaxe:)
-- ONDE:
----------- VAL1 - É o valor que ele sempre vai retornar... exeto quando este VAL1 for "NULL"
----------- VAL_ALTERNATIVO - É o valor que ele apenas vai retornar caso o VAL1 seja "NULL".
### GROUP BY ###
-- E finalizando o GROUP BY... ele não é tão complicado... Ele é utilizado para agrupar resultados pelo valor de uma coluna... E sempre deve ser usado quando o "SELECT" utiliza alguma função de "AGREGAÇÂO", como o "SUM, COUNT, MAX, MIN" entre outras...
--Exemplo:
-- Onde a instrução vai retornar o nome de todas as cidades, e o numero de clientes que possui em cada cidade...
-- você pode usar também o group by com mais de uma coluna de agrupamento... ex:
-- Esta outra instrução vai retornar o Número de Clientes em cada cidade... porém agora vai retornar separadamente o numero de clientes do sexo "MASCULINO" e "FEMININO"...
]
-- Bom... é isso... rsrsrs... espero poder ter ajudado um pouco ai... vlw! =) ...
Caso isso tudo ai tenha servido só para atrapalhar mais ainda... então é so falar que da próxima eu fico queto! kkkkkkkkkk... falou!
Seguinte... eu não tenho muito conhecimento nesse assunto mas vou tentar esclarecer um pouco pra tu... ou então confundir mais ainda tua cabeça! kkkkk...
mais vamo lá!
### DECODE ###
--Olha... o decode é usado como um "CASE"... ele é muito útil no "Reports"... quando você quer fazer uma ligação entre "querys", se você usar o "CASE" o reports não aceita a ligação... então utiliza-se o "DECODE"... a sintaxe é a segunte:
DECODE(X, VAL1, 'RETORNO1', VAL2, 'RETORNO2', VAL3, 'RETORNO3', 'RETORNO-ELSE')
---------- X - É a coluna que vai estar sendo testada...
---------- VAL - São os valores da condição...
---------- 'RETORNO' - São as respostas... caso a condição seja verdadeira
---------- 'RETORNO-ELSE' - Sempre o último retorno... que não possui condição... é como um "ELSE" no case... ele é retornado caso nenhuma das condições sejam verdadeiras.
-- o "DECODE" é muito útil e acho ele muito mais pratico que o "CASE"...
### NVL ###
--Bom... o "NVL" é usado para quando um valor for "NULL" ele retorna um valor alternativo... é muito utilizado em "RELATÓRIOS"... Sabe... quando tu faz uma tela para chamar um Relatório de Clientes por exemplo... Então o Usuário seleciona o Cliente desejado... e o sistema exibe o relatório do cliente selecionado... Porém... se o usuário "NÃO SELECIONAR NENHUM CLIENTE" o sistema deve retornar o RELATÓRIO geral de todos os clientes... então Usa-se o NVL para comparar o "ID" do Cliente... com o "ID" informado no Formulário do Relatório... caso o "ID" informado seja "NULL" (Não informou)... O NVL traz um valor alternativo... O proprio "ID" que fará com que todos os Clientes Sejam Selecionados:
EX:
SELECT C.CLI_NOM, C.CLI_COD
FROM CLIENTES C
WHERE C.CLI_ID = NVL(:ID_PASSADO_POR_PARAMETRO, C.CLI_ID)
-- Sintaxe:
NVL(VAL1, VAL_ALTERNATIVO
-- ONDE:
----------- VAL1 - É o valor que ele sempre vai retornar... exeto quando este VAL1 for "NULL"
----------- VAL_ALTERNATIVO - É o valor que ele apenas vai retornar caso o VAL1 seja "NULL".
### GROUP BY ###
-- E finalizando o GROUP BY... ele não é tão complicado... Ele é utilizado para agrupar resultados pelo valor de uma coluna... E sempre deve ser usado quando o "SELECT" utiliza alguma função de "AGREGAÇÂO", como o "SUM, COUNT, MAX, MIN" entre outras...
--Exemplo:
SELECT C.CLI_CIDADE, COUNT(1)
FROM CLIENTES C
GROUP BY C.CLI_CIDADE
-- você pode usar também o group by com mais de uma coluna de agrupamento... ex:
SELECT C.CLI_CIDADE, C.CLI_SEXO, COUNT(1)
FROM CLIENTES C
GROPU BY C.CLI_CIDADE, C.CLI_SEXO
]
-- Bom... é isso... rsrsrs... espero poder ter ajudado um pouco ai... vlw! =) ...
Caso isso tudo ai tenha servido só para atrapalhar mais ainda... então é so falar que da próxima eu fico queto! kkkkkkkkkk... falou!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes