36
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
create database < | create database <NOME_BASE_DADOS>; | ||
</syntaxhighlight>Insira o comando abaixo para entrar no banco recém-criado<syntaxhighlight lang="psql"> | </syntaxhighlight>Insira o comando abaixo para entrar no banco recém-criado<syntaxhighlight lang="psql"> | ||
\c <nome_base_de_dados>; | \c <nome_base_de_dados>; | ||
Linha 131: | Linha 131: | ||
</syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE. | </syntaxhighlight>O script SQL acima proporciona a base de dados a lidar com projeções compatíveis com o IBGE. | ||
Em seguida, | Em seguida, precisamos criar as funções vbit_interleave e ints_to_interleavedbits. Ainda na CLI do postgres, adicione na sequência, os scripts SQL abaixo: <syntaxhighlight lang="sql"> | ||
CREATE FUNCTION vbit_interleave(x varbit, y varbit) returns varbit as $f$ | |||
SELECT string_agg(( substring(x,i,1)||substring(y,i,1) )::text,'')::varbit | |||
FROM generate_series(1,bit_length(x)) t(i) | |||
$f$ LANGUAGE SQL IMMUTABLE; | |||
</syntaxhighlight> <syntaxhighlight lang="sql"> | |||
CREATE FUNCTION ints_to_interleavedbits(x int, y int, len int default 32) returns varbit as $f$ | |||
SELECT vbit_interleave( substring(x::bit(32),33-len), substring(y::bit(32),33-len) ) | |||
$f$ LANGUAGE SQL IMMUTABLE; | |||
</syntaxhighlight> | |||
==== Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros ==== | ==== Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros ==== |
edições