Výrazy, hodnoty a výraz let
Dotaz jazyka vzorců Power Query M se skládá z kroků výrazů vzorců, které vytvoří mashupový dotaz. Výraz vzorce je možné vyhodnotit (vypočítat) a získat hodnotu. Výraz let zapouzdřuje sadu hodnot, které se mají vypočítat, přiřadit názvy a pak použít v následném výrazu, který následuje za příkazem. Výraz let může například obsahovat zdrojovou proměnnou, která se rovná hodnotě Text.Proper() a ve správném případě vrátí textovou hodnotu.
Výraz Let
let
Source = Text.Proper("hello world")
in
Source
V předchozím příkladu se text.Proper("hello world") vyhodnotí jako "Hello World".
Další části popisují typy hodnot v jazyce.
Primitivní hodnota
Primitivní hodnota je jedna část, například číslo, logické, text nebo hodnota null. Hodnotu null lze použít k označení nepřítomnosti jakýchkoli dat.
Typ | Příklad hodnoty |
---|---|
Binární | 00 00 00 02 // počet bodů (2) |
Date | 5/23/2015 |
DateTime | 5.23.2015 12:00:00 |
DateTimeZone | 5.23.2015 12:00:00 -08:00 |
Doba trvání | 15:35:00 |
Logický | true a false |
Null | null |
Počet | 0, 1, -1, 1,5 a 2,3e-5 |
Text | "abc" |
Čas | 12:34:12 |
Hodnota funkce
Funkce je hodnota, která při vyvolání s argumenty vytvoří novou hodnotu. Funkce se zapisují výpisem parametrů funkce v závorkách a následným znakem goes-to =>, za kterým následuje výraz definující funkci. Chcete-li například vytvořit funkci s názvem "MyFunction", která má dva parametry, a provede výpočet parametru1 a parametr2:
let
MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2
in
MyFunction
Volání funkce MyFunction() vrátí výsledek:
let
Source = MyFunction(2, 4)
in
Source
Tento kód vytvoří hodnotu 3.
Hodnoty strukturovaných dat
Jazyk M podporuje následující hodnoty strukturovaných dat:
Poznámka
Strukturovaná data můžou obsahovat libovolnou hodnotu M. Pokud chcete zobrazit několik příkladů, podívejte se na další příklady strukturovaných dat.
Seznam
Seznam je seřazená sekvence hodnot založená na nule uzavřených ve složených závorce { }. Složené závorky { } slouží také k načtení položky ze seznamu podle pozice indexu. Viz [Hodnota seznamu](#_List_value).
Poznámka
Power Query M podporuje neomezenou velikost seznamu, ale pokud je seznam napsaný jako literál, má seznam pevnou délku. Například {1, 2, 3} má pevnou délku 3.
Následuje několik příkladů seznamu .
Hodnota | Typ |
---|---|
{123, true, "A"} | Seznam obsahující číslo, logickou hodnotu a text |
{1, 2, 3} | Seznam čísel |
{ {1, 2, 3}, {4, 5, 6} } |
Seznam čísel |
{ [CustomerID = 1, Name = "Bob", Telefon = "123-4567"], [CustomerID = 2, Name = "Jim", Telefon = "987-6543"] } |
Seznam záznamů |
{123, true, "A"}{0} | Získá hodnotu první položky v seznamu. Tento výraz vrátí hodnotu 123. |
{ {1, 2, 3}, {4, 5, 6} }{0}{1} |
Získá hodnotu druhé položky z prvního prvku List. Tento výraz vrátí hodnotu 2. |
Zaznamenat
Záznam je sada polí. Pole je dvojice název/hodnota, kde název je textová hodnota, která je jedinečná v záznamu pole. Syntaxe hodnot záznamů umožňuje zápis názvů bez uvozovek, formulář označovaný také jako identifikátory. Identifikátor může mít následující dvě formy:
identifier_name, například ORDERID.
#"název identifikátoru", například #"Dnešní data jsou: ".
Následuje záznam obsahující pole s názvem OrderID, CustomerID, Item a Price s hodnotami 1, 1, "Fishing rod" a 100,00. Hranaté závorky [ ] označují začátek a konec výrazu záznamu a slouží k získání hodnoty pole ze záznamu. Následující příklady ukazují záznam a způsob získání hodnoty pole Položka.
Tady je příklad záznamu:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source
Chcete-li získat hodnotu položky, použijte hranaté závorky jako Zdroj[Položka]:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source[Item] //equals "Fishing rod"
Tabulka
Tabulka je sada hodnot uspořádaných do pojmenovaných sloupců a řádků. Typ sloupce může být implicitní nebo explicitní. Pomocí #table můžete vytvořit seznam názvů sloupců a seznamu řádků. Tabulka hodnot je seznam v seznamu. Složené závorky { } slouží také k načtení řádku z tabulky podle pozice indexu (přejít na příklad 3 – Získání řádku z tabulky podle pozice indexu).
Příklad 1 – Vytvoření tabulky s implicitními typy sloupců
let
Source = #table(
{"OrderID", "CustomerID", "Item", "Price"},
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
})
in
Source
Příklad 2 – Vytvoření tabulky s explicitními typy sloupců
let
Source = #table(
type table [OrderID = number, CustomerID = number, Item = text, Price = number],
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
}
)
in
Source
Oba výše uvedené příklady vytvoří tabulku s následujícím obrazcem:
OrderID | CustomerID | Položka | Cena |
---|---|---|---|
1 | 1 | Rybářský prut | 100.00 |
2 | 1 | 1 lb. červi | 5.00 |
Příklad 3 – Získání řádku z tabulky podle pozice indexu
let
Source = #table(
type table [OrderID = number, CustomerID = number, Item = text, Price = number],
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
}
)
in
Source{1}
Tento výraz vrátí následující záznam:
Pole | Hodnota |
---|---|
Kódobjednávky | 2 |
Kódzákazníka | 1 |
Položka | 1 lb. červi |
Cena | 5 |
Další příklady strukturovaných dat
Strukturovaná data můžou obsahovat libovolnou hodnotu M. Zde je uvedeno několik příkladů:
Příklad 1 – Seznam s hodnotami [Primitive](#_Primitive_value_1), [Function](#_Function_value) a [Record](#_Record_value)
let
Source =
{
1,
"Bob",
DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"),
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0]
}
in
Source
Vyhodnocení tohoto výrazu lze vizualizovat takto:
Příklad 2 – záznam obsahující primitivní hodnoty a vnořené záznamy
let
Source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders =
{
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0],
[OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0]
}]
in
Source
Vyhodnocení tohoto výrazu lze vizualizovat takto:
Poznámka
Ačkoli mnoho hodnot lze zapsat doslova jako výraz, hodnota není výraz. Například výraz 1 se vyhodnotí jako hodnota 1; výraz 1+1 se vyhodnotí jako hodnota 2. Toto rozlišení je jemné, ale důležité. Výrazy jsou recepty pro vyhodnocení; hodnoty jsou výsledky vyhodnocení.
Výraz If
Výraz if vybere mezi dvěma výrazy na základě logické podmínky. Příklad:
if 2 > 1 then
2 + 2
else
1 + 1
První výraz (2 + 2) je vybrán, pokud je logický výraz (2 > 1) pravdivý a druhý výraz (1 + 1) je vybrán, pokud je false. Vybraný výraz (v tomto případě 2 + 2) se vyhodnotí a stane se výsledkem výrazu if (4).
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro