Warunek wyszukiwania (Transact-SQL)

Jest połączeniem jednego lub więcej predykatów, wykorzystujące operatory logiczne AND, OR i NOT.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

<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 )     } 

Argumenty

  • <search_condition>
    Określa warunki dla wierszy zwracanych w zestaw wyników dla instrukcjaSELECT, wyrażeniekwerendy lub podzapytanie.instrukcjaokreśla dla aktualizacji wierszy, które mają być aktualizowane.instrukcjaokreśla dla usunięcia wierszy, które mają zostać usunięte.Nie jest ograniczona do liczby predykatów, które mogą być zawarte w Transact-SQL instrukcja warunek wyszukiwania.

  • NIE
    Negacja wartość logiczna wyrażenie określone przez orzeczenie.Aby uzyskać więcej informacji, zobacz NIE (Transact-SQL).

  • ORAZ
    Łączy dwa warunki, a wynikiem jest wartość TRUE, gdy oba warunki są PRAWDZIWE.Aby uzyskać więcej informacji, zobacz I (Transact-SQL).

  • LUB
    Łączy dwa warunki, a wynikiem jest wartość TRUE, gdy któryś z warunków jest równa TRUE.Aby uzyskać więcej informacji, zobacz LUB (Transact-SQL).

  • < predykat >
    To wyrażenie , które zwraca wartość PRAWDA, FAŁSZ lub nieznany.

  • expression
    To nazwa kolumna , stała, funkcja, zmiennej, wartość skalarna podzapytanielub dowolną kombinację nazw kolumna , stałe i funkcje połączone przy użyciu operator lub operatorów lub podzapytanie.wyrażenie może także zawierać sprawy wyrażenie.

    Ostrzeżenie

    Przy odwoływaniu się do znaków Unicode okreolana nchar, nvarchar, i ntext, "wyrażenie" być poprzedzona ciągiem Wielka litera n ".Jeśli 'N' nie jest określony, SQL Server ciąg jest konwertowany na strona kodowa odpowiada domyślnym sortowanie bazy danych lub kolumna.Wszystkie znaki nie znaleziono w tej strona kodowa zostaną utracone.

  • =
    operator służy do testowania równość między dwoma wyrażeniami.

  • <>
    operator służy do testowania warunku dwa wyrażenia nie jest równy sobie nawzajem.

  • !=
    operator służy do testowania warunku dwa wyrażenia nie jest równy sobie nawzajem.

  • >
    operator używany do testowania warunku jednego wyrażenie jest większa od drugiej.

  • >=
    operator używany do testowania warunku jedno wyrażenie jest większe niż lub równe inne wyrażenie.

  • !>
    operator używany do testowania warunku jedno wyrażenie nie jest większa niż inne wyrażenie.

  • <
    operator używany do testowania warunku jedno wyrażenie jest mniejsza od drugiej.

  • <=
    operator używany do testowania warunku jedno wyrażenie jest mniejsza niż inne wyrażenie.

  • !<
    operator używany do testowania warunku jedno wyrażenie nie jest mniejsza niż inne wyrażenie.

  • string_expression
    Jest to ciąg znaków i symboli wieloznacznych.

  • [ NIE], NP.
    Wskazuje, że kolejny znak ciąg jest używany z dopasowania wzorca.Aby uzyskać więcej informacji, zobacz LIKE (Transact-SQL).

  • ESCAPE 'escape_ character"
    Zezwala na symbol wieloznaczny mają być wyszukiwane w ciąg znaków zamiast działa jako symbol wieloznaczny.escape_characterjest znak, który jest umieszczany na początku znaku wieloznacznego, aby wskazać tego specjalnego zastosowania.

  • [ NIE] MIĘDZY
    Określa włącznie zakres wartości.Wykorzystanie i oddzielić wartości początkowa i końcowa.Aby uzyskać więcej informacji, zobacz POMIĘDZY (Transact-SQL).

  • [NOT] MA WARTOŚĆ NULL
    Określa wyszukiwania wartooci null lub wartości, które nie są równe null, w zależności od używanych słów kluczowych.wyrażenie z logiczną lub arytmetycznych operator ma wartość NULL, jeśli jeden z argumentów ma wartość NULL.

  • ZAWIERA
    Przeszukuje kolumny zawierające dane znakowym dokładne lub mniej dokładne (rozmyte) pasuje do pojedynczych wyrazów i fraz, bliskość wyrazy w pewnej odległości jeden na drugi i ważonych odpowiedników.Tej opcji należy używać tylko z instrukcji SELECT.Aby uzyskać więcej informacji, zobacz CONTAINS (Transact-SQL).

  • FREETEXT
    Zapewnia prosty formularz w języku potocznym przeszukując kolumny zawierające dane wartości, które odpowiadają znaczenie zamiast słowa w predykacie znakowym.Tej opcji należy używać tylko z instrukcji SELECT.Aby uzyskać więcej informacji, zobacz FREETEXT (Transact-SQL).

  • [ W NIE]
    Określa wyszukiwanie wyrażenie, oparte na czy wyrażenie jest włączone lub wyłączone z listy.Wyszukiwane wyrażenie może być stała lub nazwę kolumna , a lista może być zestaw stałe lub więcej zazwyczaj podzapytanie.Lista wartości należy ująć w nawiasy.Aby uzyskać więcej informacji, zobacz W języku Transact-SQL ().

  • subquery
    Można uznać za ograniczony instrukcja SELECT, podobnej do <query_expresssion> w instrukcjaSELECT.ORDER BY klauzulaobliczeń klauzulai słowa kluczowego INTO nie są dozwolone.Aby uzyskać więcej informacji, zobacz SELECT (Transact-SQL).

  • ALL
    Używane z porównania operator i podzapytanie.Zwraca wartość TRUE dla <predykatu> podczas wszystkich wartości pobranych dla podzapytanie spełniają operacja porównania lub FALSE, gdy nie wszystkie wartości spełniają porównania lub gdy podzapytanie zwraca żadne wiersze do zewnętrznego instrukcja.Aby uzyskać więcej informacji, zobacz WSZYSTKIE (Transact-SQL).

  • { NIEKTÓRE | WSZELKIE}
    Używane z porównania operator i podzapytanie.Zwraca wartość TRUE dla <predykatu> przy dowolną wartość pobierane podzapytanie spełnia operacja porównania lub FALSE, gdy żadne wartości podzapytanie spełniają porównania lub gdy podzapytanie zwraca żadne wiersze do zewnętrznego instrukcja.W przeciwnym wypadku wyrażenie jest nieznany.Aby uzyskać więcej informacji, zobacz NIEKTÓRE | WSZELKIE (Transact-SQL).

  • ISTNIEJE
    Używane z podzapytanie , aby sprawdzić istnienie wierszy zwróconych przez podzapytanie.Aby uzyskać więcej informacji, zobacz EXISTS (Transact-SQL).

Uwagi

NIE jest kolejność pierwszeństwa operatorów logicznych (najwyższe), po której następuje I, po której następuje lub.Nawiasy można zastąpić ten priorytet w warunek wyszukiwania.Kolejność operatorów logicznych mogą się różnić w zależności od wyborów dokonanych przez optymalizator kwerendy.Aby uzyskać więcej informacji dotyczących sposobu operatory logiczne działają na wartości logiczne, zobacz I (Transact-SQL), LUB (Transact-SQL), i NIE (Transact-SQL).

Przykłady

A.Stosując z takie jak i EWAKUACJI składni

Następujący przykład wyszukuje wierszy, w którym LargePhotoFileName kolumna zawiera znaki green_i korzysta z ESCAPE opcji, ponieważ _ jest znak symbolu wieloznacznego.Bez określenia ESCAPE opcji kwerendy byłyby wyszukiwania wartości opis zawierające wyraz green następuje jeden dowolny znak inny niż _ znaków.

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

B.GDZIE i jak składnia z danych Unicode

W poniższym przykładzie użyto WHERE klauzula pobrać adresu pocztowego dla dowolnej firmy, która jest poza obszarem Stanów Zjednoczonych (US) i w mieście, których nazwa zaczyna się od Pa.

USE AdventureWorks2008R2 ;
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'Pa%' ;