Lausekkeet, arvot ja let-lauseke
Power Query M -kaavakielikysely koostuu kaavan lausekevaiheista , jotka luovat koostekyselyn. Kaavalauseke voidaan laskea niin, että tulokseksi saadaan arvo. Let-lauseke kiteyttää joukon arvoja laskettavaksi, määritettäväksi nimeksi ja käytettäväksi sitten lausekkeessa, joka seuraa in-lauseketta. Let-lauseke voi sisältää esimerkiksi Source-muuttujan, joka on arvoltaan sama kuin Text.Proper() ja tuottaa kirjainkooltaan oikean tekstiarvon.
Let-lauseke
let
Source = Text.Proper("hello world")
in
Source
Yllä olevassa esimerkissä Text.Proper("hello world") lasketaan arvoksi "Hei maailma".
Seuraavissa osissa kuvataan kielen arvotyypit.
Primitiiviarvo
Primitiiviarvo on yksiosainen arvo, kuten luku, looginen arvo, teksti tai tyhjäarvo. Tyhjäarvon avulla voidaan ilmaista kaikkien tietojen puuttumista.
Tyyppi | Esimerkkiarvo |
---|---|
Binaarinen | 00 00 00 02 // pisteiden määrä (2) |
Päivämäärä | 5/23/2015 |
DateTime | 23.5.2015 klo 12.00.00 |
Päivämäärä, aika ja aikavyöhyke | 23.5.2015 klo 12.00.00 -08.00 |
Kesto | 15:35:00 |
Looginen | tosi ja epätosi |
Tyhjäarvo | tyhjä |
Luku | 0, 1, -1, 1.5, and 2.3e-5 |
Teksti | "abc" |
Aika | KLO 12.34.12 |
Funktion arvo
Funktio on arvo, joka argumenteilla käynnistettynä tuottaa uuden arvon. Funktiot kirjoitetaan luettelemalla funktion parametrit sulkeissa, niiden jäljessä merkki =>, sen jäljessä funktion määrittävä lauseke. Esimerkiksi jos haluat luoda "MyFunction"-nimisen funktion, jolla on kaksi parametria ja joka suorittaa laskutoimituksen parametreille parameter1 ja parameter2:
let
MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2
in
MyFunction
MyFunction()-funktion kutsuminen palauttaa tuloksen:
let
Source = MyFunction(2, 4)
in
Source
Tämä koodi tuottaa arvon 3.
Jäsennettyjä tietoarvoja
M-kieli tukee seuraavia jäsennettyjä tietoarvoja:
Muistiinpano
Jäsennetty tieto voi sisältää minkä tahansa M-arvon. Katso pari esimerkkiä kohdasta Muita esimerkkejä jäsennettyistä tiedoista.
List
Luettelo on nollapohjainen järjestetty arvojen sarja, joka on kirjoitettu aaltosulkeisiin { }. Aaltosulkeita { } käytetään myös tietoyksikön noutamiseen luettelosta hakemistosijainnin mukaan. Katso [List value](#_List_value).
Muistiinpano
Power Query M tukee ääretöntä luettelokokoa, mutta jos luettelo on kirjoitettu literaalina, luettelolla on kiinteä pituus. Esimerkiksi {1, 2, 3} on kiinteä pituus 3.
Seuraavassa on joitakin esimerkkejä luetteloista .
Arvo | Tyyppi |
---|---|
{123, true, "A"} | Luettelo, joka sisältää luvun, loogisen luvun ja tekstin. |
{1, 2, 3} | Luettelo luvuista |
{ {1, 2, 3}, {4, 5, 6} } |
Luettelo lukujen luetteloista |
{ [Asiakastunnus = 1, Nimi = "Bob", Puhelin = "123-4567"], [Asiakastunnus = 2, Nimi = "Jim", Puhelin = "987-6543"] } |
Tietueluettelo |
{123, true, "A"}{0} | Hae luettelon ensimmäisen tietoyksikön arvo. Tämä lauseke palauttaa arvon 123. |
{ {1, 2, 3}, {4, 5, 6} }{0}{1} |
Hae toisen tietoyksikön arvo luettelon ensimmäisestä osasta. Tämä lauseke palauttaa arvon 2. |
Nauhoita
Tietue on joukko kenttiä. Kenttä on nimi/arvo-pari, jossa nimi on kentän tietueen sisällä ainutlaatuinen tekstiarvo. Tietuearvojen syntaksi sallii nimien kirjoittamisen ilman lainausmerkkejä. Tässä muodossa niitä kutsutaan myös tunnisteiksi. Tunniste voi olla seuraavassa kahdessa muodossa:
identifier_name kuten OrderID.
#"tunnisteen nimi", kuten #"Päivän tiedot ovat: ".
Seuraavassa on tietue, joka sisältää kentät nimeltä "OrderID", "CustomerID", "Item" ja "Price", joiden arvot ovat 1, 1, "Onkivapa" ja 100,00. Hakasulkumerkit [ ] ilmaisevat tietuelausekkeen alkua ja loppua, ja niitä käytetään kenttäarvon hakemiseen tietueesta. Seuraavissa esimerkeissä näytetään tietue ja tietoyksikkökentän arvon hakeminen.
Tässä on esimerkkitietue:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source
Jos haluat tietoyksikköarvon, käytä hakasulkeita, kuten Source[Item]:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source[Item] //equals "Fishing rod"
Taulukko
Taulukko on joukko arvoja, jotka on järjestetty nimetyiksi sarakkeiksi ja riveiksi. Saraketyyppi voi olla implisiittinen tai eksplisiittinen. #table avulla voit luoda luettelon sarakkeiden nimistä ja riviluettelosta. Arvotaulukko on luettelo luettelossa. Aaltosulkeita { } käytetään myös rivin noutamiseen taulukosta hakemistosijainnin mukaan (siirry esimerkkiin 3 – Hae rivi taulukosta hakemistosijainnin mukaan).
Esimerkki 1 – Luo taulukko, joka sisältää implisiittisiä saraketyyppejä
let
Source = #table(
{"OrderID", "CustomerID", "Item", "Price"},
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
})
in
Source
Esimerkki 2 – Luo taulukko, joka sisältää eksplisiittisiä saraketyyppejä
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
Molemmat yllä olevat esimerkit luovat taulukon, jolla on seuraava muoto:
OrderID | Asiakastunnus | Kohde | Hinta |
---|---|---|---|
1 | 1 | Onki | 100.00 |
2 | 1 | 1 kilo matoja | 5.00 |
Esimerkki 3 – Hae rivi taulukosta hakemistosijainnin mukaan
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}
Tämä lauseke palauttaa seuraavan tietueen:
Kenttä | Arvo |
---|---|
Tilaustunnus | 2 |
Asiakastunnus | 1 |
Kohde | 1 kilo matoja |
Price | 5 |
Muita esimerkkejä jäsennettyistä tiedoista
Jäsennetty tieto voi sisältää minkä tahansa M-arvon. Seuraavassa on muutamia esimerkkejä:
Esimerkki 1 – Luettelo, jossa [Primitive](#_Primitive_value_1)-arvot, [Function](#_Function_value) ja [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
Tämän lausekkeen arviointi voidaan visualisoida seuraavasti:
Esimerkki 2 – Primitiiviarvoja ja sisäkkäisiä tietueita sisältävä tietue
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
Tämän lausekkeen arviointi voidaan visualisoida seuraavasti:
Muistiinpano
Vaikka monet arvot voidaan kirjoittaa kirjaimellisesti lausekkeena, arvo ei ole lauseke. Esimerkiksi lauseke 1 antaa tulokseksi arvon 1; lauseke 1 + 1 antaa tulokseksi arvon 2. Tämä ero on hienovarainen, mutta tärkeä. Lausekkeet ovat arvioimista varten reseptejä; -arvot ovat arvioinnin tuloksia.
If-lauseke
If-lauseke valitsee kahdesta lausekkeesta kahden loogisen ehdon perusteella. Esimerkkejä:
if 2 > 1 then
2 + 2
else
1 + 1
Ensimmäinen lauseke (2 + 2) valitaan, jos looginen lauseke (2 > 1) on tosi, ja toinen lauseke (1 + 1) valitaan, jos se on epätosi. Valittu lauseke (tässä tapauksessa 2 + 2) lasketaan ja siitä tulee if-lausekkeen tulos (4).
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle