Nhảy tới nội dung

Table.FuzzyNestedJoin

Thực hiện phép nối mờ bảng trên các cột được cung cấp và cho ra kết quả nối trong một cột mới.

Syntax

Table.FuzzyNestedJoin(
table1 as table,
key1 as any,
table2 as table,
key2 as any,
newColumnName as text,
optional joinKind as JoinKind.Type,
optional joinOptions as record
) as table

Remarks

Nối các hàng table1 với các hàng table2 dựa trên phép khớp mờ những giá trị của cột chính do key1 chọn (cho table1) và key2 chọn (cho table2). Kết quả sẽ được trả về trong một cột mới tên là newColumnName.
Khớp mờ là một phép so sánh dựa trên sự giống nhau của văn bản chứ không phải sự ngang bằng.
joinKind tùy chọn sẽ chỉ định loại phép nối cần thực hiện. Theo mặc định, sẽ thực hiện phép nối ngoài bên trái nếu chưa chỉ định joinKind. Các tùy chọn bao gồm:

  • JoinKind.Inner
  • JoinKind.LeftOuter
  • JoinKind.RightOuter
  • JoinKind.FullOuter
  • JoinKind.LeftAnti
  • JoinKind.RightAnti

Có thể đưa vào tập hợp joinOptions tùy chọn để chỉ định cách so sánh những cột chính. Các tùy chọn bao gồm:
  • ConcurrentRequests : Một số trong khoảng từ 1 đến 8 cho biết số luồng song song để sử dụng cho hoạt động khớp mờ. Giá trị mặc định là 1.
  • Culture : Cho phép nhóm bản ghi dựa trên quy tắc cụ thể theo văn hóa. Đây có thể là bất kỳ tên văn hóa hợp lệ nào. Ví dụ: một tùy chọn Văn hóa gồm các bản ghi khớp "ja-JP" dựa trên văn hóa của người Nhật. Giá trị mặc định là "" có kết quả khớp dựa trên văn hóa của người Anh bất biến.
  • IgnoreCase : Giá trị logic (true/false) cho phép khớp khóa phân biệt chữ hoa/thường. Ví dụ: khi là true, "Grapes" khớp với "grapes". Giá trị mặc định là true.
  • IgnoreSpace : Giá trị logic (true/false) cho phép kết hợp các phần văn bản để tìm kết quả khớp. Ví dụ: khi là true, "Gra pes" khớp với "Grapes". Giá trị mặc định là true.
  • NumberOfMatches : Một số nguyên chỉ định số hàng khớp tối đa có thể được trả về cho mỗi hàng đầu vào. Ví dụ: Giá trị là 1 sẽ trả về nhiều nhất một hàng khớp cho mỗi hàng đầu vào. Nếu không cung cấp tùy chọn này thì tất cả các hàng khớp đều được trả về.
  • SimilarityColumnName : Tên của cột hiển thị độ tương tự giữa giá trị đầu vào và giá trị đại diện cho đầu vào đó. Giá trị mặc định là null, khi đó cột mới cho độ tương tự sẽ không được thêm vào.
  • Threshold : Một số trong khoảng từ 0,00 đến 1,00 cho biết điểm tương đồng mà tại đó hai giá trị sẽ khớp nhau. Ví dụ: "Grapes" và "Graes" (thiếu "p") được khớp với nhau chỉ khi tùy chọn này được đặt thành dưới 0,90. Ngưỡng 1,00 chỉ cho phép khớp chính xác. (Lưu ý rằng một "kết quả khớp chính xác" gần đúng có thể bỏ qua các khác biệt như viết hoa, thứ tự từ và dấu chấm câu.) Giá trị mặc định là 0,80.
  • TransformationTable : Bảng cho phép khớp các bản ghi dựa trên các ánh xạ giá trị tùy chỉnh. Bảng sẽ chứa các cột "From" và "To". Ví dụ: "Grapes" được khớp với "Raisins" nếu bảng chuyển đổi được cung cấp có cột "From" chứa "Grapes" và cột "To" chứa "Raisins". Lưu ý rằng việc chuyển đổi sẽ được áp dụng cho mọi phiên bản văn bản trong bảng chuyển đổi. Với bảng chuyển đổi ở trên, "Grapes are sweet" cũng được khớp với "Raisins are sweet".

Examples

Example #1

Phép nối mờ bên trong ở bên trái của hai bảng dựa trên [FirstName]

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

Result:

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

Category

Table.Transformation