Esse recurso permite fazer coisas interessantes sobre result sets de SQLs complexos. Você pode, por exemplo, agrupar dados, fazer joins com outras tabelas, usar funções aggregates, dentre outras coisas.
Tomemos como exemplo o sequinte SQL hipotético:
select id_cliente, nome,
case
when situacao = 'I' then 1
when situacao = 'X' then 2
when situacao = 'A' then 3
end id_situacao
from cliente
Digamos que você queira contar quantos clientes existem para cada nova situação. Fazer isso no SQL acima o tornaria um pouco mais complexo. Usando o recurso do select sobre um result set, torna a tarefa bem mais fácil:
select count(t1.id_situacao), s.ds_situacao from
(
select id_cliente, nome,
case
when situacao = 'I' then 1
when situacao = 'X' then 2
when situacao = 'A' then 3
end id_situacao
from cliente
) t1
inner join situacao s on s.id_situacao = t1.id_situacao
Essa sintaxe acima funciona tanto no MS-SQL Server quanto no Oracle e acredito que também funcione no Firebird.
Bom proveito...
Bom proveito...
Nenhum comentário:
Postar um comentário