Skip to main content
Permite consultar dados armazenados em um banco de dados SQLite.

Sintaxe

Argumentos

Valor retornado

  • Um objeto de tabela com as mesmas colunas da tabela SQLite original.

Passando uma consulta em vez de um nome de tabela

Em vez de um nome de tabela, o segundo argumento pode ser uma consulta SELECT passada ao SQLite como está. A estrutura da tabela resultante é inferida a partir do resultado da consulta. A consulta pode ser escrita como uma subconsulta ou encapsulada na função query:
Essa tabela é somente leitura: não é permitido fazer INSERT nela. A mesma sintaxe também é aceita pelo motor de tabela SQLite.
A forma de subconsulta (SELECT ...) é analisada pelo ClickHouse e reserializada antes de ser enviada ao SQLite. Portanto, ela deve ser um SQL válido do ClickHouse. Para usar uma sintaxe específica do SQLite que o ClickHouse não analisa, use a forma query('...'), cujo texto é enviado ao SQLite literalmente.Qualquer WHERE, LIMIT, agregação etc. externo da consulta ClickHouse circundante não é aplicado à consulta fornecida — ele é aplicado no ClickHouse depois que o resultado completo da consulta é buscado. Para restringir os dados lidos do SQLite, coloque o filtro dentro da consulta fornecida. Com external_table_strict_query = 1, um filtro externo nas colunas da função de tabela é rejeitado com uma exceção, em vez de ser aplicado localmente, pois não pode ser aplicado à consulta fornecida. A verificação abrange o predicado WHERE de nível superior e cada conjunção de um AND de nível superior. Um PREWHERE nas colunas desta tabela não é um caso para essa configuração: este motor de tabela não oferece suporte a PREWHERE, e essa consulta é rejeitada com ILLEGAL_PREWHERE independentemente da configuração. A verificação é executada apenas onde um filtro poderia ser aplicado: quando esta tabela é a única tabela da consulta, em qualquer lado de um INNER JOIN ou no lado preservado de uma junção externa (o lado esquerdo de um LEFT JOIN, o lado direito de um RIGHT JOIN). No lado não preservado de um LEFT/RIGHT JOIN e em qualquer lado de um FULL JOIN, nada é aplicado e nada é verificado; portanto, um filtro nas colunas desta tabela é aplicado localmente após a junção mesmo no modo estrito. Onde a verificação é executada, um predicado que referencia outras tabelas unidas na consulta circundante não é aplicado e é excluído da verificação, independentemente de referenciar apenas o lado unido ou de misturá-lo com esta tabela em uma expressão que não seja AND (por exemplo, um OR); tal predicado mantém seu ponto usual de avaliação no ClickHouse (WHERE após a junção, PREWHERE antes dela) e não é rejeitado.

Exemplo

Query
Response

Relacionados

Última modificação em 26 de setembro de 2026