Posts in sql

Função Para Contar Palavras (Padrão De Caracteres) Em Uma String Microsoft SQL Server

Salve galera!

Precisei durante essa semana de uma função que contasse quantas vezes uma palavra aparecia dentro de uma String no SQL Server. Achei que já tivesse algo pelo menos similar, mais após andar pelo MSDN e pelo Books Online vi que o jeito seria fazer uma função.

A lógica é a seguinte:

  • Recebo via Parâmetro a Palavra que quero buscar e a String toda ou texto.
  • Faço um loop baseado no tamanho do texto.
  • Pego o tamanho da palavra que está sendo procurada e a cada caracter do texto, andamos o tamanho da palavra e comparamos se isso é igual a palavra procurada.
  • Se for, soma um no contador de palavras e continua.

Agora como fica o código disso? Repare abaixo:

Continue lendo...

Limitando O SELECT Do SQL Em Diferentes Bancos De Dados

Olá pessoal…

Atualmente tenho tido o privilégio de trabalhar com vários data bases, e com isso está dando para ver as diferenças de sintaxe, performance, ferramentas e demais coisas de um para outro.

Tenho trabalhado com Microsoft SQL, Postgres e Oracle.

Uma coisa que me chamou a atenção foi a maneira de limitar a consulta em cada um deles. Tenho feito bastante consultas limitadas pois ainda estou conhecendo a base de dados da empresa e não sei ao certo quantos registros tem certas tabelas. Para evitar que a coisa caia ou trave, faço consultas limitadas.

Repare as diferenças de um banco para outro abaixo:

SELECT * FROM tabela LIMIT 20

Continue lendo...

Tratando CPF, CNPJ, Primeiro Nome E Data Pelo SQL (Postgre)

Olhando para os códigos php no trabalho, como tem sido de costume para averiguar erros e algoritmos que possa melhorar, me deparo em vários controllers com uma série de splits e loops para horas tratar o cpf, horas tratar o cnpj que vem do banco de dados.

No banco de dados estes campos estão salvos em um domínio String, e gravados sem pontuação ou dígitos. Então quando você quer mostrar para o usuário, para não deixar aquele emaranhado de números, você deixa as coisas como ele está acustumado a ver, com os pontos e etc.

Para não ficar repetindo a mesma rotina em vários locais do sistema, nem mesmo criar um método que eu tenha que chamar sempre que quiser um tratamento desses, já trago a coisa toda pronta no retorno da consulta. Simples, confira…

Trazendo o CPF com a pontuação e o dígito antes dos dois últimos numerais

SELECT SUBSTR(cpf, 1, 3) || '.' || SUBSTR(cpf, 4, 3) || '.' ||
SUBSTR(cpf, 7, 3) || '-' || SUBSTR(cpf, 10) AS cpf
FROM e001_pessoas
WHERE pessoaid = 33;

Continue lendo...