Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Szintaxis
Table.FuzzyNestedJoin(
table1 as table,
key1 as any,
table2 as table,
key2 as any,
newColumnName as text,
optional joinKind as nullable number,
optional joinOptions as nullable record
) as table
Rólunk
Összekapcsolja a table1 sorait a table2 soraival a key1 (table1) és key2 (table2) által kiválasztott kulcsoszlopok értékeinek homályos egyeztetése alapján. Az eredmények egy új, newColumnNamenevű oszlopban jelennek meg.
A homályos egyezés a szöveg hasonlóságán alapuló összehasonlítás, nem pedig a szöveg egyenlősége.
Az opcionális joinKind a végrehajtandó illesztés típusát határozza meg. Alapértelmezés szerint bal oldali külső illesztés akkor történik, ha nincs megadva joinKind. A lehetőségek a következők:
- JoinKind.Inner
- JoinKind.LeftOuter
- JoinKind.RightOuter
- JoinKind.FullOuter
- JoinKind.LeftAnti
- JoinKind.RightAnti
- JoinKind.LeftSemi
- JoinKind.RightSemi
A kulcsoszlopok összehasonlításának módjának megadásához egy választható joinOptions elem is szerepelhet. A lehetőségek a következők:
-
ConcurrentRequests: Egy 1 és 8 közötti szám, amely megadja a párhuzamos szálak számát, amelyeket a homályos egyeztetéshez használnak. Az alapértelmezett érték 1. -
Culture: Lehetővé teszi a rekordok egyezését a kultúraspecifikus szabályok alapján. Bármilyen érvényes kulturális név lehet. Például a "ja-JP" kultúrabeállítása megegyezik a japán kultúra alapján megadott rekordokkal. Az alapértelmezett érték a "", amely az invariáns angol kultúra alapján egyezik. -
IgnoreCase: Logikai (igaz/hamis) érték, amely lehetővé teszi a kulcspárok kis- és nagybetűket figyelmen kívül hagyó egyeztetését. Például, ha igaz, akkor a "Szőlő" megegyezik a "szőlővel". Az alapértelmezett érték igaz. -
IgnoreSpace: Logikai (igaz/hamis) érték, amely lehetővé teszi a szövegrészek kombinálását az egyezések keresése érdekében. Például, ha igaz, a "Gra pes" a "Grapes"-szel egyezik. Az alapértelmezett érték igaz. -
NumberOfMatches: Egy egész szám, amely meghatározza az összes bemeneti sorhoz visszaadható egyező sorok maximális számát. Egy 1 érték például legfeljebb egy egyező sort ad vissza az egyes bemeneti sorokhoz. Ha ez a beállítás nincs megadva, a rendszer az összes egyező sort visszaadja. -
SimilarityColumnName: Az oszlop neve, amely egy bemeneti érték és az adott bemenet reprezentatív értéke közötti hasonlóságot mutatja. Az alapértelmezett érték null, ebben az esetben a rendszer nem ad hozzá új oszlopot a hasonlóságokhoz. -
Threshold: Egy 0,00 és 1,00 közötti szám, amely megadja azt a hasonlósági pontszámot, amelyen két érték lesz megfeleltetve. Például csak akkor egyeznek meg a "Szőlő" és a "Graes" (amelyből hiányzik a "p"), ha ez az opció 0,90-nél kisebbre van állítva. Az 1,00-s küszöbérték csak pontos egyezéseket tesz lehetővé. (Vegye figyelembe, hogy a homályos "pontos egyezés" figyelmen kívül hagyhatja a különbségeket, például a burkolatot, a szósorrendet és az írásjeleket.) Az alapértelmezett érték 0,80. -
TransformationTable: Olyan tábla, amely lehetővé teszi az egyéni értékleképezéseken alapuló rekordok egyeztetését. Tartalmaznia kell a "Feladó" és a "To" oszlopot. Egy átalakítási táblázat például úgy párosítja a "Szőlő"-t a "Mazsola"-val, hogy a "Szőlő" szerepel az "Innen" oszlopban, míg a "Mazsola" a "Ide" oszlopban van. Vegye figyelembe, hogy az átalakítás az átalakítási táblázat szövegének minden előfordulására érvényes lesz. A fenti átalakítási táblázattal a "Szőlő édes" is megfelel a "Mazsola édes" kijelentésének.
Example
Két tábla bal oldali homályos belső illesztése [FirstName] alapján
Használat
Table.FuzzyNestedJoin(
Table.FromRecords(
{
[CustomerID = 1, FirstName1 = "Bob", Phone = "555-1234"],
[CustomerID = 2, FirstName1 = "Robert", Phone = "555-4567"]
},
type table [CustomerID = nullable number, FirstName1 = nullable text, Phone = nullable text]
),
{"FirstName1"},
Table.FromRecords(
{
[CustomerStateID = 1, FirstName2 = "Bob", State = "TX"],
[CustomerStateID = 2, FirstName2 = "bOB", State = "CA"]
},
type table [CustomerStateID = nullable number, FirstName2 = nullable text, State = nullable text]
),
{"FirstName2"},
"NestedTable",
JoinKind.LeftOuter,
[IgnoreCase = true, IgnoreSpace = false]
)
kimeneti
Table.FromRecords({
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
NestedTable = Table.FromRecords({
[
CustomerStateID = 1,
FirstName2 = "Bob",
State = "TX"
],
[
CustomerStateID = 2,
FirstName2 = "bOB",
State = "CA"
]
})
],
[
CustomerID = 2,
FirstName1 = "Robert",
Phone = "555-4567",
NestedTable = Table.FromRecords({})
]
})