Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Retorna um valor constante escalar da expressão avaliada.
Esta função é útil para consultas que exigem cálculos em estágios. Por exemplo, calcule uma contagem total de eventos e use o resultado para filtrar grupos que excedam uma determinada porcentagem de todos os eventos.
Quaisquer duas instruções são separadas por ponto-e-vírgula.
Sintaxe
toscalar(
expressão)
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Designação | Tipo | Necessário | Descrição |
|---|---|---|---|
| expressão | string |
✔️ | O valor a ser convertido em um valor escalar. |
Devoluções
Um valor constante escalar da expressão avaliada. Se o resultado for uma tabela, a primeira coluna e a primeira linha serão tomadas para conversão.
Dica
Você pode usar uma instrução let para legibilidade da consulta ao usar toscalar().
Limitações
toscalar() não pode ser aplicado em um cenário que aplica a função em cada linha. Isso ocorre porque a função só pode ser calculada um número constante de vezes durante a execução da consulta.
Normalmente, quando essa limitação é atingida, o seguinte erro é retornado: can't use '<column name>' as it is defined outside its row-context scope.
No exemplo a seguir, a consulta falha com o erro:
'toscalar': can't use 'x' as it is defined outside its row-context scope.
let _dataset1 = datatable(x:long)[1,2,3,4,5];
let _dataset2 = datatable(x:long, y:long) [ 1, 2, 3, 4, 5, 6];
let tg = (x_: long)
{
toscalar(_dataset2| where x == x_ | project y);
};
_dataset1
| extend y = tg(x)
Essa falha pode ser atenuada usando o operador join, como no exemplo a seguir:
let _dataset1 = datatable(x: long)[1, 2, 3, 4, 5];
let _dataset2 = datatable(x: long, y: long) [1, 2, 3, 4, 5, 6];
_dataset1
| join (_dataset2) on x
| project x, y
Output
| x | y |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
Exemplos
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
Definir intervalo para avaliação
Avalie Start, Ende Step como constantes escalares e use o resultado para range avaliação.
let Start = toscalar(print x=1);
let End = toscalar(range x from 1 to 9 step 1 | count);
let Step = toscalar(2);
range z from Start to End step Step | extend start=Start, end=End, step=Step
Output
| z | Início | fim | passo a passo |
|---|---|---|---|
| 1 | 1 | 9 | 2 |
| 3 | 1 | 9 | 2 |
| 5 | 1 | 9 | 2 |
| 7 | 1 | 9 | 2 |
| 9 | 1 | 9 | 2 |
Gerar GUID fixo e dinâmico
O exemplo a seguir mostra como toscalar() pode ser usado para gerar um guidfixo, calculado precisamente uma vez, e valores dinâmicos para guid.
let g1 = toscalar(new_guid());
let g2 = new_guid();
range x from 1 to 2 step 1
| extend x=g1, y=g2
Output
| x | y |
|---|---|
| E6A15E72-756D-4C93-93D3-FE85C18D19A3 | C2937642-0D30-4B98-A157-A6706E217620 |
| E6A15E72-756D-4C93-93D3-FE85C18D19A3 | C6A48CB3-9F98-4670-BF5B-589D0E0DCAF5 |