!in – operátor

Filtruje sadu záznamů pro data bez řetězce rozlišující malá a velká písmena.

Následující tabulka obsahuje porovnání in operátorů:

Operátor Popis Case-Sensitive Příklad (výnosy true)
in Rovná se jednomu z prvků Yes "abc" in ("123", "345", "abc")
!in Nerovná se žádnému z prvků. Yes "bca" !in ("123", "345", "abc")
in~ Rovná se některému z prvků. No "Abc" in~ ("123", "345", "abc")
!in~ Nerovná se žádnému z prvků. No "bCa" !in~ ("123", "345", "ABC")

Poznámka

Vnořená pole se zploštějí do jednoho seznamu hodnot. Například se změní na x in (dynamic([1,[2,3]]))x in (1,2,3).

Další informace o jiných operátorech a určení, který operátor je pro váš dotaz nejvhodnější, najdete v tématu Operátory řetězců datových typů.

Operátory nerozlišující malá a velká písmena jsou v současné době podporovány pouze pro text ASCII. Pro porovnání jiných než ASCII použijte funkci tolower().

Tipy pro zvýšení výkonu

Poznámka

Výkon závisí na typu vyhledávání a struktuře dat. Osvědčené postupy najdete v tématu Osvědčené postupy pro dotazy.

Syntax

T|whereCol!in(Výraz, ... )

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
T string ✔️ Tabulkový vstup pro filtrování.
Col string ✔️ Sloupec, podle kterého chcete filtrovat.
expression skalární nebo tabulkové ✔️ Výraz, který určuje hodnoty, které se mají hledat. Každý výraz může být skalární hodnotou nebo tabulkovým výrazem , který vytváří sadu hodnot. Pokud má tabulkový výraz více sloupců, použije se první sloupec. Při hledání se bere v úvahu až 1 000 000 jedinečných hodnot.

Návraty

Řádky v T , pro které je truepredikát .

Příklad

Seznam skalárů

Následující dotaz ukazuje, jak použít !in seznam skalárních hodnot oddělených čárkami.

StormEvents 
| where State !in ("FLORIDA", "GEORGIA", "NEW YORK") 
| count

Výstup

Počet
54291

Dynamické pole

Následující dotaz ukazuje použití !in s dynamickým polem.

StormEvents 
| where State !in (dynamic(["FLORIDA", "GEORGIA", "NEW YORK"])) 
| count

Výstup

Počet
54291

Stejný dotaz lze také zapsat pomocí příkazu let.

let states = dynamic(["FLORIDA", "GEORGIA", "NEW YORK"]);
StormEvents 
| where State !in (states)
| summarize count() by State

Výstup

Počet
54291

Tabulkový výraz

Následující dotaz ukazuje, jak se používá !in s vloženým tabulkovým výrazem. Všimněte si, že vložený tabulkový výraz musí být uzavřený do dvojitých závorek.

StormEvents 
| where State !in (PopulationData | where Population > 5000000 | project State)
| summarize count() by State

Výstup

Stav Počet
KANSAS 3166
IOWA 2337
NEBRASKA 1766
OKLAHOMA 1716
JIŽNÍ DAKOTA 1567
... ...

Stejný dotaz lze také zapsat pomocí příkazu let. Všimněte si, že dvojité závorky uvedené v posledním příkladu nejsou v tomto případě nutné.

let large_states = PopulationData | where Population > 5000000 | project State;
StormEvents 
| where State !in (large_states)
| summarize count() by State

Výstup

Stav Počet
KANSAS 3166
IOWA 2337
NEBRASKA 1766
OKLAHOMA 1716
JIŽNÍ DAKOTA 1567
... ...