Critério de pesquisa (Transact-SQL)

É uma combinação de um ou mais predicados que usam os operadores lógicos AND, OR e NOT.

Ícone de vínculo de tópico Convenções de sintaxe Transact-SQL


< search_condition > ::= 
    { [ NOT ] <predicate> | ( <search_condition> ) } 
    [ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ] 
[ ,...n ] 
<predicate> ::= 
    { expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression 
    | string_expression [ NOT ] LIKE string_expression 
  [ ESCAPE 'escape_character' ] 
    | expression [ NOT ] BETWEEN expression AND expression 
    | expression IS [ NOT ] NULL 
    | CONTAINS 
    ( { column | * } , '< contains_search_condition >' ) 
    | FREETEXT ( { column | * } , 'freetext_string' ) 
    | expression [ NOT ] IN ( subquery | expression [ ,...n ] ) 
    | expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } 
  { ALL | SOME | ANY} ( subquery ) 
    | EXISTS ( subquery )     } 

<search_condition>

Especifica as condições para as linhas retornadas no conjunto de resultados para uma instrução SELECT, expressão de consulta ou subconsulta. Para uma instrução UPDATE, especifica as linhas a serem atualizadas. Para uma instrução DELETE, especifica as linhas a serem excluídas. Não há nenhum limite para o número de predicados que podem ser incluídos em um critério de pesquisa da instrução Transact-SQL.

NOT

Nega a expressão booleana especificada pelo predicado. Para obter mais informações, consulte NOT (Transact-SQL).

AND

Combina duas condições e avalia como TRUE quando ambas são TRUE. Para obter mais informações, consulte AND (Transact-SQL).

OR

Combina duas condições e avalia como TRUE quando uma delas é TRUE. Para obter mais informações, consulte OR (Transact-SQL).

< predicate >

É uma expressão que retorna TRUE, FALSE ou UNKNOWN.

expression

É um nome de coluna, uma constante, uma função, uma variável, uma subconsulta escalar ou qualquer combinação de nomes de coluna, constantes e funções conectadas por um operador ou operadores ou por uma subconsulta. A expressão também pode conter a expressão CASE.

Observação Observação

Ao referenciar tipos de dados de caractere Unicode nchar, nvarchar e ntext, 'expression' deve ter a letra maiúscula 'N' como prefixo. Se N não for especificado, o SQL Server converterá a cadeia de caracteres na página de código correspondente ao agrupamento padrão do banco de dados ou coluna. Qualquer caractere não localizado nessa página de código será perdido.

=

É o operador usado para testar a igualdade entre duas expressões.

<>

É o operador usado para testar a condição de duas expressões que não são iguais.

!=

É o operador usado para testar a condição de duas expressões que não são iguais.

>

É o operador usado para testar a condição de uma expressão maior do que a outra.

>=

É o operador usado para testar a condição de uma expressão maior que ou igual a outra.

!>

É o operador usado para testar a condição de uma expressão que não é maior que a outra.

<

É o operador usado para testar a condição de uma expressão menor do que a outra.

<=

É o operador usado para testar a condição de uma expressão menor que ou igual a outra.

!<

É o operador usado para testar a condição de uma expressão que não é menor que a outra.

string_expression

É uma cadeia de caracteres e caracteres e curinga.

[ NOT ] LIKE

Indica que a cadeia de caracteres subseqüente será usada com uma correspondência de padrão. Para obter mais informações, consulte LIKE (Transact-SQL).

ESCAPE 'escape_ character'

Permite que um caractere curinga seja pesquisado em uma cadeia de caracteres em vez de funcionar como um caractere curinga. escape_character é o caractere colocado na frente do caractere curinga para indicar esse uso especial.

[ NOT ] BETWEEN

Especifica um intervalo inclusivo de valores. Use AND para separar os valores inicial e final. Para obter mais informações, consulte BETWEEN (Transact-SQL).

IS [ NOT ] NULL

Especifica uma pesquisa para obter valores nulos, ou valores que não são nulos, dependendo das palavras-chave usadas. Uma expressão com um operador bit a bit ou aritmético avaliará como NULL se qualquer um dos operandos for NULL.

CONTAINS

Pesquisa colunas contendo tipos de dados baseados em caracteres para obter correspondências precisas ou menos que precisas (difusas) para palavras e frases únicas, proximidade entre as palavras dentro de uma determinada distância e correspondências ponderadas. Esta opção só pode ser usada com instruções SELECT. Para obter mais informações, consulte CONTAINS (Transact-SQL).

FREETEXT

Fornece uma forma simples de consulta de idioma natural pesquisando colunas contendo dados baseados em caracteres para obter valores que correspondam ao significado, em vez das palavras exatas no predicado. Esta opção só pode ser usada com instruções SELECT. Para obter mais informações, consulte FREETEXT (Transact-SQL).

[ NOT ] IN

Especifica a pesquisa de uma expressão, com base na inclusão ou exclusão da expressão em uma lista. A expressão de pesquisa pode ser uma constante ou um nome de coluna, e a lista pode ser um conjunto de constantes ou, normalmente, uma subconsulta. Inclua a lista de valores em parênteses. Para obter mais informações, consulte IN (Transact-SQL).

subquery

Pode ser considerada uma instrução SELECT restrita e ser semelhante a <query_expresssion> na instrução SELECT. A cláusula ORDER BY, a cláusula COMPUTE e a palavra-chave INTO não são permitidas. Para obter mais informações, consulte SELECT (Transact-SQL).

ALL

Usado com um operador de comparação e uma subconsulta. Retorna TRUE para <predicate> quando todos os valores recuperados para a subconsulta satisfazem a operação de comparação ou FALSE quando nem todos os valores satisfazem a comparação ou quando a subconsulta não retorna nenhuma linha para a instrução externa. Para obter mais informações, consulte ALL (Transact-SQL).

{ SOME | ANY }

Usado com um operador de comparação e uma subconsulta. Retorna TRUE para <predicate> quando qualquer valor recuperado para a subconsulta satisfaz a operação de comparação ou FALSE quando nenhum valor na subconsulta satisfaz a comparação ou quando a subconsulta não retorna nenhuma linha para a instrução externa. Caso contrário, a expressão é UNKNOWN. Para obter mais informações, consulte SOME | ANY (Transact-SQL).

EXISTS

Usada com uma subconsulta para testar para a existência de linhas retornadas pela subconsulta. Para obter mais informações, consulte EXISTS (Transact-SQL).

A ordem de precedência para operadores lógicos é NOT (mais alto), seguido por AND, seguido por OR. Podem ser usados parênteses para anular essa precedência em um critério de pesquisa. A ordem de avaliação de operadores lógicos pode variar, dependendo das escolhas feitas pelo otimizador de consultas. Para obter mais informações sobre como os operadores lógicos funcionam em valores lógicos, consulte AND (Transact-SQL), OR (Transact-SQL)e NOT (Transact-SQL).

A. Usando a sintaxe WHERE com LIKE e ESCAPE

O exemplo a seguir pesquisa as linhas nas quais a coluna LargePhotoFileName possui os caracteres green_ e usa a opção ESCAPE porque _ é um caractere curinga. Sem especificar a opção ESCAPE, a consulta pesquisaria quaisquer valores de descrição contendo a palavra green seguida por qualquer caractere único diferente do caractere _.

USE AdventureWorks ;
GO
SELECT * 
FROM Production.ProductPhoto
WHERE LargePhotoFileName LIKE '%greena_%' ESCAPE 'a' ;

B. Usando a sintaxe WHERE e LIKE com dados Unicode

O exemplo a seguir usa a cláusula WHERE para recuperar o endereço para correspondência para qualquer empresa que esteja fora dos Estados Unidos (US) e em uma cidade cujo nome comece com Mn.

USE AdventureWorks ;
GO
SELECT AddressLine1, AddressLine2, City, PostalCode, CountryRegionCode  
FROM Person.Address AS a
JOIN Person.StateProvince AS s ON a.StateProvinceID = s.StateProvinceID
WHERE CountryRegionCode NOT IN ('US')
AND City LIKE N'Mn%' ;

Contribuições da comunidade

ADICIONAR
Mostrar: