Ir para o conteúdo
Totalmente local

Construtor de cláusula SQL WHERE

Transforme uma lista de valores numa condição SQL WHERE com listas IN, intervalos e padrões LIKE.

Saída

Construtor de cláusula SQL WHERE

Cole uma lista de valores e esta ferramenta monta uma condição SQL WHERE pronta para usar — uma lista IN, um intervalo BETWEEN, um padrão LIKE ou uma simples comparação — sem ter de digitar aspas, vírgulas e parênteses à mão. É construída para o caso comum de transformar uma coluna de planilha ou um resultado de consulta no filtro da próxima consulta.

Escolha o nome da coluna, o operador e como múltiplas condições se combinam (AND ou OR). IN e NOT IN colapsam cada valor numa lista única, automaticamente dividida em lotes menores uma vez que a lista ultrapasse o tamanho definido, mantendo listas longas dentro dos limites de parâmetros da base de dados — os lotes para IN unem-se com OR, e os lotes para NOT IN com AND, uma vez que isto preserva a lógica equivalente a uma lista única não dividida. BETWEEN lê cada entrada como um par baixo:alto. O tipo de valor (texto, número ou data) controla se os valores são envolvidos em aspas, e cada apóstrofo dentro de uma cadeia é automaticamente escapado para que um nome como O'Brien não possa quebrar a consulta. Seleccione um dialeto SQL para obter as aspas correctas para um nome de coluna que o necessite — backticks para MySQL, parênteses rectos para SQL Server, aspas duplas noutros locais.

Além da cláusula literal, a ferramenta produz sempre uma versão parametrizada com o estilo de placeholder escolhido — simples pontos de interrogação, placeholders numerados $1/$2 ou placeholders nomeados derivados da coluna — mais a lista de valores na ordem em que têm de ser ligados. Linhas em branco na lista de valores são ignoradas por padrão, ou transformadas numa cláusula adicional "OR coluna IS NULL" quando deseja incluir linhas NULL no resultado.

Tudo é executado localmente no seu navegador; os valores que cola nunca são carregados em qualquer lado. Copie o resultado, transfira-o como ficheiro .txt ou devolva o resultado à entrada para continuar a refiná-lo.

FAQ

Como escrevo um intervalo para BETWEEN?
Cada linha é um par baixo:alto, por exemplo 10:20. Linhas que não são um par válido são ignoradas e contadas separadamente.
O que acontece a uma lista longa com o operador IN?
Uma vez que a lista é mais comprida do que o tamanho do lote definido, é dividida em vários grupos IN (...) unidos com OR, o que mantém cada base de dados feliz sobre quantos parâmetros uma consulta pode ligar.
Ela escapa apóstrofos para mim?
Sim. Cada aspa simples dentro de um valor texto ou data é duplicada, para que um valor como O'Brien se torne 'O''Brien' e não possa quebrar o SQL gerado.
Para que serve a saída parametrizada?
É a versão que ligaria no código — com ?, $1/$2 ou placeholders nomeados em vez de valores literais — mostrada juntamente com os valores na ordem em que têm de ser passados.
Os meus dados são carregados em qualquer lado?
Não. A cláusula é construída inteiramente no seu navegador; os valores que introduz nunca abandonam o seu dispositivo.