Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Синтаксис
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
О нас
Объединяет строки table1
со строками table2
на основе нечеткого сопоставления значений ключевых столбцов, выбранных key1
(для table1
) и key2
(для table2
). Результаты возвращаются в новом столбце с именем newColumnName
.
Нечеткое сопоставление — это сравнение на основе сходства текста, а не равенства текста.
Необязательный joinKind
указывает тип выполняемого соединения. По умолчанию левое внешнее соединение выполняется, если joinKind
не указан. Варианты включают:
- JoinKind.Inner
- JoinKind.LeftOuter
- JoinKind.RightOuter
- JoinKind.FullOuter
- JoinKind.LeftAnti
- JoinKind.RightAnti
- JoinKind.LeftSemi
- JoinKind.RightSemi
Необязательный набор joinOptions
может быть добавлен, чтобы указать, как сравнить ключевые столбцы. Варианты включают:
-
ConcurrentRequests
: число от 1 до 8, указывающее количество параллельных потоков, используемых для нечеткого сопоставления. Значение по умолчанию — 1. -
Culture
. Разрешает сопоставление записей на основе правил, специфичных для культуры. Это может быть любое допустимое имя культуры. Например, опция "Культура"ja-JPсоответствует записям, основанным на японской культуре. Значение по умолчанию — "", которое соответствует инвариантной английской культуре. -
IgnoreCase
: Логическое значение (например, истина/ложь), которое позволяет сопоставлять ключи без учета регистра. Например, если значение true, "Виноград" совпадает с "виноград". Значение по умолчанию — true. -
IgnoreSpace
: логическое значение (true/false), позволяющее объединять текстовые части для поиска совпадений. Например, если условие истинно, "Gra pes" сопоставляется с "Виноград". Значение по умолчанию — true. -
NumberOfMatches
: целое число, указывающее максимальное количество соответствующих строк, которые можно возвращать для каждой входной строки. Например, значение 1 возвращает по крайней мере одну соответствующую строку для каждой входной строки. Если этот параметр не указан, возвращаются все соответствующие строки. -
SimilarityColumnName
: имя столбца, показывающее сходство между входным значением и репрезентативным значением для этого ввода. Значение по умолчанию равно NULL, в этом случае новый столбец для сходства не будет добавлен. -
Threshold
: число от 0,00 до 1.00, указывающее оценку сходства, по которой будут соответствовать два значения. Например, "Grapes" и "Graes" (отсутствует "p") совпадают только в том случае, если этот параметр установлен на значение менее 0,90. Пороговое значение 1.00 допускает только точные совпадения. (Обратите внимание, что нечеткое "точное совпадение" может игнорировать различия, такие как регистр, порядок слов и знак препинания.) Значение по умолчанию — 0,80. -
TransformationTable
: таблица, которая позволяет сопоставлять записи на основе сопоставлений настраиваемых значений. Он должен содержать столбцы From и To. Например, "Виноград" сопоставляется с "Изюм", если таблица преобразования предоставляется с столбцом From, содержащим "Виноград" и столбец "To", содержащий "Изюм". Обратите внимание, что преобразование будет применено ко всем вхождениям данного текста в таблице преобразования. С приведенной выше таблицей преобразования "Виноград сладкий" также будет соответствовать "Изюм сладкий".
Пример 1
Левое внутреннее нечеткое объединение двух таблиц на основе поля [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]
)
выход
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({})
]
})