Operatore search
Cerca un modello di testo in più tabelle e colonne.
Nota
Se si conoscono le tabelle e le colonne specifiche da cercare, è più efficiente usare l'unione e dove gli operatori. L'operatore search
può essere lento durante la ricerca in un numero elevato di tabelle e colonne.
Sintassi
[T|
] [CaseSensitivity ] [in
kind=
(
TableSources)
] search
SearchPredicate
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
T | string |
Origine dati tabulare da cercare, ad esempio un nome di tabella, un operatore di unione o i risultati di una query tabulare. Impossibile visualizzare insieme a TableSources. | |
CaseSensitivity | string |
Flag che controlla il comportamento di tutti gli string operatori scalari, ad esempio has , rispetto alla riservatezza delle maiuscole e minuscole. I valori validi sono default , , case_insensitive case_sensitive . Le opzioni default e sono sinonimo, poiché il comportamento predefinito è senza distinzione tra maiuscole e case_insensitive minuscole. |
|
TableSources | string |
Elenco delimitato da virgole di nomi di tabella "con caratteri jolly" da partecipare alla ricerca. L'elenco ha la stessa sintassi dell'elenco dell'operatore unione. Impossibile visualizzare insieme a TabularSource. | |
SearchPredicate | string |
✔️ | Espressione booleana da valutare per ogni record nell'input. Se restituisce true , il record viene restituito. Vedere sintassi del predicato di ricerca. |
Sintassi del predicato di ricerca
SearchPredicate consente di cercare termini specifici in tutte le colonne di una tabella. L'operatore che verrà applicato a un termine di ricerca dipende dalla presenza e dalla posizione di un asterisco jolly (*
) nel termine, come illustrato nella tabella seguente.
Literal (Valore letterale) | Operatore |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
È anche possibile limitare la ricerca a una colonna specifica, cercare una corrispondenza esatta anziché una corrispondenza termine o cercare in base a un'espressione regolare. La sintassi per ognuno di questi casi è illustrata nella tabella seguente.
Sintassi | Spiegazione |
---|---|
Columnname: Stringliteral |
Questa sintassi può essere usata per limitare la ricerca a una colonna specifica. Il comportamento predefinito consiste nel cercare tutte le colonne. |
Columnname== Stringliteral |
Questa sintassi può essere usata per cercare corrispondenze esatte di una colonna rispetto a un valore stringa. Il comportamento predefinito consiste nel cercare una corrispondenza tra termini. |
Colonnamatches regex Stringliteral |
Questa sintassi indica la corrispondenza delle espressioni regolari, in cui StringLiteral è il modello regex. |
Usare espressioni booleane per combinare le condizioni e creare ricerche più complesse. Ad esempio, "error" and x==123
verrà eseguita una ricerca di record con il termine error
in qualsiasi colonna e il valore 123
nella x
colonna.
Nota
Se vengono omessi sia TabularSource che TableSource , la ricerca viene eseguita su tutte le tabelle e le viste non limitate del database nell'ambito.
Esempi di sintassi del predicato di ricerca
# | Sintassi | Significato (equivalente where ) |
Commenti |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
unione T1,T2,A* | dove * ha "err" |
|
3 | search col:"err" |
where col has "err" |
|
4 | search col=="err" |
where col=="err" |
|
5 | search "err*" |
where * hasprefix "err" |
|
6 | search "*err" |
where * hassuffix "err" |
|
7 | search "*err*" |
where * contains "err" |
|
8 | search "Lab*PC" |
where * matches regex @"\bLab.*PC\b" |
|
9 | search * |
where 0==0 |
|
10 | search col matches regex "..." |
where col matches regex "..." |
|
11 | search kind=case_sensitive |
Tutti i confronti delle stringhe sono distinzione tra maiuscole e minuscole | |
12 | search "abc" and ("def" or "hij") |
where * has "abc" and (* has "def" or * has hij") |
|
13 | search "err" or (A>a and A<b) |
where * has "err" or (A>a and A<b) |
Commenti
A differenza dell'operatore find, l'operatoresearch
non supporta quanto segue:
withsource=
: l'output includerà sempre una colonna denominata$table
di tipostring
il cui valore è il nome della tabella da cui è stato recuperato ogni record (o un nome generato dal sistema se l'origine non è una tabella ma un'espressione composita).project=
,project-smart
: lo schema di output equivale alloproject-smart
schema di output.
Esempio
Ricerca termine globale
Cercare un termine per tutte le tabelle e le visualizzazioni senza restrizioni del database nell'ambito.
search "Green"
L'output Customers
contiene record dalle tabelle , Products
e SalesTable
. I Customers
record mostrano tutti i clienti con il cognome "Verde" e i Products
record e SalesTable
mostrano i prodotti con una menzione di "Verde".
Ricerca di termini globali condizionali
Cercare i record che corrispondono a entrambi i termini su tutte le tabelle e le viste senza restrizioni del database nell'ambito.
search "Green" and ("Deluxe" or "Proseware")
Cercare una tabella specifica
Cercare solo nella Customers
tabella.
search in (Products) "Green"
Ricerca con distinzione tra maiuscole e minuscole
Cercare i record che corrispondono a entrambi i termini con distinzione tra maiuscole e minuscole su tutte le tabelle e le visualizzazioni del database nell'ambito.
search kind=case_sensitive "blue"
Cercare colonne specifiche
Cercare un termine nelle colonne "FirstName" e "LastName" su tutte le tabelle e le viste non limitate del database nell'ambito.
search FirstName:"Aaron" or LastName:"Hughes"
Limitare la ricerca in base al timestamp
Cercare un termine su tutte le tabelle e le viste non limitate del database nell'ambito se il termine viene visualizzato in un record con una data maggiore della data specificata.
search "Hughes" and DateKey > datetime('2009-01-01')
Suggerimenti sulle prestazioni
# | Suggerimento | Prefer | Over (Selezione) |
---|---|---|---|
1 | Preferisce usare un singolo search operatore su più operatori consecutivi search |
search "billg" and ("steveb" or "satyan") |
ricerca "billg" | ricerca "steveb" o "satyan" |
2 | Preferisce filtrare all'interno dell'operatore search |
search "billg" and "steveb" |
search * | dove * ha "billg" e * ha "steveb" |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per