Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Runtime 19.0 e superiores
Important
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
Retorna true se search_pattern for encontrado em qualquer um dos valores de coluna alvo fornecidos.
Para informações sobre a aceleração search de consultas com índices de pesquisa em texto completo, consulte Índices de pesquisa em texto integral nas tabelas geridas do Catálogo Unity.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: Uma ou mais expressões-alvo pesquisáveis. Uma expressão pesquisável tem um destes tipos:-
STRINGcomUTF8_BINARYcolação. -
VARIANT. -
STRUCTcom pelo menos um campo pesquisável. A estrutura é automaticamente expandida para os seus campos foliares pesquisáveis a qualquer profundidade de nidificação. -
ARRAYde qualquer tipo pesquisável.
Não existe um cast implícito para valores-alvo que não sejam cadeia.
-
search_pattern: Uma expressão dobrável (constante)STRINGcom o valor a procurar.mode: Um argumento opcional nomeadoSTRINGque controla como as partidas são realizadas. Um dos seguintes:-
'substring'(defeito): Corresponde sesearch_patternaparecer em qualquer lugar dentro de um valor-alvo. Equivalente àcontainsfunção. -
'word': Faz corresponder as palavras individuais emsearch_patterncontra um valor-alvo, independentemente da ordem.
-
Devoluções
Um BOOLEAN.
-
truesesearch_patternse encontra em qualquer um dos valores da coluna alvo. -
NULLsesearch_patternnão for encontrado em nenhum valor de coluna alvo e pelo menos um desses valores forNULL. -
falsecaso contrário.
Observações
-
isearchfunção é a variante insensível a maiúsculas e minúsculas desearchcom comportamento de outra forma idêntico. - Para um
STRUCTargumento, a função pesquisa todos os campos folha pesquisáveis acessíveis a partir do struct de nível superior, independentemente da profundidade de aninhamento. A mesma expansão aplica-se recursivamente aSTRUCTcorpos dentroVARIANTde eARRAYvalores. - No
'substring'modo,VARIANTas teclas e os valores escalares não relacionados com a cadeia dentro de aVARIANTnão são correspondidos. Usa'word'o modo ou extrai campos individuais para pesquisar nesses.
Condições de erro comuns
Examples
-- Basic examples.
> SELECT search(column, 'needle', mode => 'substring') FROM VALUES ('Needle') AS table(column);
false
> SELECT search(column, 'quick fox', mode => 'substring') FROM VALUES ('quick brown fox') AS table(column);
false
> SELECT search(column, lower('NEEDLE')) FROM VALUES ('needle') AS table(column);
true
> SELECT search(column, 'quick fox', mode => 'word') FROM VALUES ('quick brown fox') AS table(column);
true
> SELECT search(column, 'qui fox', mode => 'word') FROM VALUES ('quick fox') AS table(column);
false
-- Automatic expansion of STRUCT columns to their searchable leaf fields.
> CREATE TABLE test_table (
usage_stats STRUCT<digits: INT>,
customer_info STRUCT<
contact: STRUCT<json_field: VARIANT>,
name: STRING>)
USING DELTA;
> SELECT * FROM test_table WHERE search(usage_stats.digits, 'needle');
[DATATYPE_MISMATCH.UNEXPECTED_INPUT_TYPE]
> SELECT * FROM test_table WHERE search(customer_info, 'needle');
-- Equivalent to:
> SELECT * FROM test_table
WHERE search(customer_info.contact.json_field, customer_info.name, 'needle');
> SELECT * FROM test_table WHERE search(customer_info.contact, 'needle');
-- Equivalent to:
> SELECT * FROM test_table
WHERE search(customer_info.contact.json_field, 'needle');
-- VARIANT behavior: substring mode does not match keys or non-string scalar values.
> CREATE TABLE test_table AS
SELECT parse_json('{
"role": "user",
"id": 101,
"preferences": {"theme": "dark", "language": "en"}
}') AS column;
> SELECT search(column, 'user', mode => 'substring') FROM test_table;
true
> SELECT search(column, 'preferences', mode => 'substring') FROM test_table;
false
> SELECT search(column, '101', mode => 'substring') FROM test_table;
false
-- NULL behavior.
> SELECT search(NULL, 'needle', mode => 'substring');
NULL
> SELECT search(CAST(NULL AS STRING), 'needle', mode => 'substring');
NULL
> SELECT search('needle in haystack', NULL, mode => 'substring');
[SEARCH_REQUIRES_STRING_LITERALS_ARGUMENTS]