19.08.2021 Views

1546027450-1546027450-sql

Ensina estrutura básica de SQL

Ensina estrutura básica de SQL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

165 - Capítulo 10 – CONSULTAS AVANÇADAS

10.1.1 ROLLUP – usando GROUPING()

A função GROUPING () acrescentará uma coluna às consultas que

retornarão apenas dois valores: 0 (zero) quando o valor da coluna não

é nulo e 1 (um) quando o valor da coluna é nulo. Observe a consulta

a seguir:

SELECT GROUPING(MODELO), MODELO, COR, SUM(VALOR)

FROM VEICULO

GROUP BY ROLLUP(MODELO, COR)

ORDER BY MODELO;

O resultado da consulta será o apresentado a seguir:

GROUPING(MODELO) GROUPING(COR) MODELO COR SUM(VALOR)

---------------- ------------- -------- ------- ----------

0 0 FOCUS PRATA 65000

0 0 FOCUS PRETO 110000

0 1 FOCUS 175000

0 0 PALIO PRATA 55000

0 0 PALIO PRETO 85000

0 1 PALIO 140000

1 1 315000

Observe que a função GROUPING() retornou 0 (zero) para as linhas que

contêm valores para MODELO e 1 (um) para as linhas em que MODELO

é nulo.

Podemos melhorar o resultado de nossas consultas utilizando a

expressão CASE para converter o valor 1 (um) em algo mais significativo.

Observe a consulta a seguir

SELECT

CASE GROUPING(MODELO)

WHEN 1 THEN 'TODOS MODELOS'

ELSE MODELO

END AS MOD,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!