O PostgreSQL 8.3 disponibiliza algumas funções que permitem a consulta a campos ENUM com pouquíssimo esforço. As funções implementadas são: enum_first, enum_last e enum_range.
Para exemplificar sua utilização, vamos criar o tipo enum signos:
CREATE TYPE signos AS ENUM ('Áries', 'Touro', 'Gêmeos', 'Câncer', 'Leão', 'Virgem', 'Libra',
'Escorpião', 'Sagitário', 'Capricórnio', 'Aquário', 'Peixes');
* enum_first
1- Primeiro elemento de um tipo ENUM
SELECT enum_first(null::signos);
* enum_last
1- Último elemento de um tipo ENUM
SELECT enum_last(null::signos);
* enum_range - Intervalos de elementos de um tipo ENUM.
1 - Retornando todos os valores em ordem
SELECT enum_range(null::signos);
2 - Retorna valores até o ENUM Virgem, incluindo o 'Virgem'
SELECT enum_range(null, 'Virgem'::signos);
3 - Retorna valores a partir do ENUM Virgem, incluindo o 'Virgem'
SELECT enum_range('Virgem'::signos, null);
4 - Retorna valores do intervalo entre Touro e Virgem, incluindo os dois itens.
SELECT enum_range('Gêmeos'::signos,'Virgem'::signos);
Nenhum comentário:
Postar um comentário