4 | Valeurs et expressions
Catégories
- Valeurs primitives : éléments de données individuels que M traite comme une unité unique à des fins de traitement et d'opérations.
- Valeurs structurées : peuvent contenir plusieurs valeurs. 3 types de valeurs structurées :
- les listes,
- les enregistrements,
- les tables.
- Valeurs de fonction : Le langage M comprend plus de 700 fonctions définies.
- Valeurs de type : méta-valeurs qui fournissent des informations sur le type de données d'une autre valeur.
Types de données
| Valeurs primitives | Null | null |
| Valeurs primitives | Logical | true, false |
| Valeurs primitives | Number | o, 5, -5, 1.5 |
| Valeurs primitives | Time | #time(20,15,30) |
| Valeurs primitives | Date | #date(2024,03,01) |
| Valeurs primitives | DateTime | #datetime(2023,05,10,20,15,30) |
| Valeurs primitives | DateTimeZone | #datetimezone(2023,05,10,20,15,30, 09,00) |
| Valeurs primitives | Duration | #duration( 5, 2, 15, 0) |
| Valeurs primitives | Text | "hello world" |
| Valeurs primitives | Binary | #binary(”AQUID”) |
| Valeurs structurées | List | {1,2,3} |
| Valeurs structurées | Record | [A = 1, B = 2] |
| Valeurs structurées | Table | #table({”X”,”Y”}, {{0,1},{1,0}}) |
| Valeurs de fonction | Function | (x) => x+1 |
| Valeurs de type | Type | type text, type table [A = any, B = text ] |
| Any. Type | type any | Représente toutes les valeurs |
| Binary.Type | type binary | Représente toutes les valeurs binaires |
| Date. Type | type date | Représente toutes les valeurs de date |
| DateTime.Type | type datetime | Représente toutes les valeurs de date et d'heure |
| DateTimeZone.Type | type datetimezone | Représente toutes les valeurs de date et d'heure relatives à un fuseau horaire |
| Duration.Type | type duration | Représente toutes les valeurs de durée |
| Function. Type | type function | Représente toutes les fonctions |
| List.Type | type list | Représente toutes les listes |
| Logical. Type | type logical | Représente toutes les valeurs logiques |
| None.Type | type none | Ne représente aucune valeur |
| Null.Type | type null | Représente null |
| Byte. Type | type number | Représente tous les octets |
| Currency. Type | type number | Représente la valeur de la devise |
| Decimal.Type | type number | Représente un nombre décimal à virgule fixe |
| Double.Type | type number | Représente un nombre à virgule flottante en double précision |
| Int16.Type | type number | Représente un entier signé de 16 bits |
| Int32.Type | type number | Représente un entier signé de 32 bits |
| Int64.Type | type number | Représente un entier signé de 64 bits |
| Int8.Type | type number | Représente un entier signé de 8 bits |
| Number. Type | type number | Représente tous les nombres |
| Percentage. Type | type number | Représente la valeur en pourcentage |
| Single.Type | type number | Représente un nombre à virgule flottante simple précision |
| Record.Type | type record | Représente tous les enregistrements |
| Table. Type | type table | Représente toutes les tables |
| Character. Type | type text | Représente tous les caractères |
| Guid.Type | type text | Représente une valeur GUID |
| Password.Type | type text | Représente un mot de passe texte |
| Text. Type | type text | Représente toutes les valeurs de texte |
| Uri. Type | type text | Représente une URI de texte |
| Time.Type | type time | Représente toutes les valeurs temporelles |
| Type.Type | type type | Représente tous les types |
Fonctions spéciales
| Value.Type | Retourne un type de données indiqué sour forme de texte | Value.Type( sType ) | Learn MS |
| List.Count | Compte le nombre d’éléments d’une liste | List.Count( {1, 2, 3} ) |
Listes
{
"a",
{4,5,6},
[Column1 = 1, Column2 = "v"],
#table( { "ID", "Product" }, {{ 1, "Apple" }} )
}Retourne une liste d’une chaine, d’une liste, d’un enregistrement et d’une table.
List.Sort( List.Combine( { {1, 4}, {2, 5} } ) )Retourne {1, 2, 4, 5}.
let
LowercaseLetters = { "a".."z" },
Numbers = { "0".."9" },
CombinedCharacters = LowercaseLetters & Numbers,
SelectCharacters = Text.Select( "inv-1006-!**!-(act)", CombinedCharacters )
in
SelectCharactersRetourne inv1006act.
List.Numbers( 1, 5, 1 )Retourne {1,2,3,4,5}
Tables
let
Source = Table.FromColumns(
{
{123, 34, 12, "txt", null},
{123, "txt", 34, 12, null},
{"txt", 123, 34, 12, null},
{123, "txt", "34", 12, null}
}
),
ChType = Table.TransformColumnTypes( Source,
{
{"Column1", Int64.Type},
{"Column2", Int64.Type},
{"Column3", Int64.Type},
{"Column4", Int64.Type}
}
)
in
ChTypeOpérateurs

Query folding
let
Source = Sql.Database("localhost", "AdventureWorksDW2022"),
dbo_DimCurrency = Source{[Schema="dbo",Item="DimCurrency"]}[Data],
#"Sorted Rows" = Table.Sort(dbo_DimCurrency,{{"CurrencyAlternateKey", Order.Ascending}})
in
#"Sorted Rows"devient en SQL
Select [_].[CurrencyKey],
[_].[CurrencyAlternateKey],
[_].[CurrencyName]
from [dbo].[DimCurrency] as [_]
order by [_].[CurrencyAlternateKey]