powerbi - Power BI 在 LIKE 子句上连接两个表
问题描述
如何在 LIKE 子句中加入 Power BI 中的两个表?假设我们有两个表:
+------------------+ +--------+
| Messy_Name | | Tag |
+------------------+ +--------+
| red apple | | apple |
| apple very tasty | | banana |
| good apple green | +--------+
| yellow banana |
| banana split |
+------------------+
我们希望将它们加入到 PBI M 或 DAX(最好是两者)中来模仿这个 SQL 查询:
select
a.Messy_Name
,b.Tag
from FactTable a
outer apply
(
select top 1
b.Tag
from TagList b
where a.Messy_Name like '%'+b.Tag+'%'
order by b.Tag
) b
所以期望的结果是:
+------------------+--------+
| Messy_Name | Tag |
+------------------+--------+
| red apple | apple |
| apple very tasty | apple |
| good apple green | apple |
| yellow banana | banana |
| banana split | banana |
+------------------+--------+
因此,查询应该返回 TagList 表中 Messy_Name 包含该标签的第一个标签。最终,这是一对一的关系。
解决方案
若要在 Power Query 中执行此操作,请使用此公式创建一个自定义列
List.Max(
Table.SelectRows(Tags,
(T) => Text.Contains([Messy_Name], T[Tag]))[Tag])
推荐阅读
- powershell - 我将如何重写这个硬币翻转循环
- python - 如何(字面上)逐字符读取文件?
- jquery-ui - 是否有与 JqueryUI 等效的 HTML DOM 可选?
- javascript - 使用电子在 app.asar 中包含额外文件
- python - 尝试保存时获取 FOREIGN KEY 约束失败,但相同的代码适用于 shell
- javascript - 如何遍历 HTML 元素并填充 Json 对象?
- python - 如何在 Python 中使用 geopandas 测试 Point 是否在 Polygon/Multipolygon 中?
- python - 取熊猫数据框中多列的平均值
- javascript - React-chartjs-2 动态更新高度
- php - 在我的 Laravel 应用程序中为用户集成 OnlieMeeting MS (Graph api)