Share via


Table.FuzzyNestedJoin

Sözdizimi

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

Hakkında

(table1için) ve key2 (içintable1table2) tarafından seçilen key1 anahtar sütunlarının değerlerinin benzer bir eşleşmesine dayalı olarak satırları ile satırlarını table2 birleştirir. Sonuçlar adlı newColumnNameyeni bir sütunda döndürülür.

Benzer eşleşme, metin eşitliği yerine metnin benzerliğine dayalı bir karşılaştırmadır.

isteğe bağlı joinKind , gerçekleştirilecek birleştirme türünü belirtir. Varsayılan olarak, belirtilmezse joinKind sol dış birleşim gerçekleştirilir. Seçenekler arasında bulunanlar:

Anahtar sütunların joinOptions nasıl karşılaştırılacağını belirtmek için isteğe bağlı bir küme eklenebilir. Seçenekler arasında bulunanlar:

  • ConcurrentRequests: Benzer eşleştirme için kullanılacak paralel iş parçacığı sayısını belirten 1 ile 8 arasında bir sayı. Varsayılan değer 1 şeklindedir.
  • Culture: Kültüre özgü kurallara göre eşleşen kayıtlara izin verir. Herhangi bir geçerli kültür adı olabilir. Örneğin, "ja-JP" kültür seçeneği, Kayıtları Japon kültürüne göre eşleştirir. Varsayılan değer, Sabit İngilizce kültürüne göre eşleşen ""dir.
  • IgnoreCase: Büyük/küçük harfe duyarlı olmayan anahtar eşleştirmesine izin veren mantıksal (true/false) değer. Örneğin, true olduğunda, "Üzümler" "üzümler" ile eşleştirilir. Varsayılan değer doğru'dur.
  • IgnoreSpace: Eşleşmeleri bulmak için metin bölümlerinin birleştirilmesine izin veren mantıksal (true/false) değer. Örneğin, true olduğunda, "Gra pes" "Üzümler" ile eşleşir. Varsayılan değer doğru'dur.
  • NumberOfMatches: Her giriş satırı için döndürülebilecek eşleşen satır sayısı üst sınırını belirten tamsayı. Örneğin, 1 değeri her giriş satırı için en fazla bir eşleşen satır döndürür. Bu seçenek sağlanmazsa, eşleşen tüm satırlar döndürülür.
  • SimilarityColumnName: Giriş değeri ile bu girişin temsili değeri arasındaki benzerliği gösteren sütun adı. Varsayılan değer null değeridir ve bu durumda benzerlikler için yeni bir sütun eklenmez.
  • Threshold: İki değerin eşleştirileceği benzerlik puanını belirten 0,00 ile 1,00 arasında bir sayı. Örneğin, "Üzümler" ve "Soslar" ("p" eksik) yalnızca bu seçenek 0,90'dan küçük olarak ayarlanırsa eşleştirilir. 1,00 eşiği yalnızca tam eşleşmelere izin verir. (Benzer bir "tam eşleşme"nin büyük/küçük harf, sözcük sırası ve noktalama işaretleri gibi farkları yoksayabileceğini unutmayın.) Varsayılan değer 0,80'dir.
  • TransformationTable: Özel değer eşlemelerine göre eşleşen kayıtlara izin veren bir tablo. "Kimden" ve "Son" sütunları içermelidir. Örneğin, "Üzümler", "Üzümler" içeren "Kimden" sütunu ve "Kuru Üzümler" içeren "To" sütunu ile bir dönüştürme tablosu sağlanırsa "Üzümler" ile eşleştirilir. Dönüştürmenin, dönüştürme tablosundaki metnin tüm oluşumlarına uygulanacağını unutmayın. Yukarıdaki dönüşüm tablosu ile "Üzümler tatlıdır" aynı zamanda "Kuru üzümler tatlıdır" ile de eşleştirilecektir.

Örnek 1

[FirstName] temelinde iki tablonun sol iç benzer birleşimi

Kullanım

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]
)

Çıktı

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({})
    ]
})