You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query中基于LookupQuery匹配嵌入值添加自定义列

在MainQuery中添加匹配LookupQuery唯一值的列

需要在MainQuery中新增一列,根据LookupQuery里的唯一值,匹配MainQuery的Column1文本中包含的对应值并填充,未匹配到则返回空白或NULL。

Main Query

Column1
...111.
..ABC..
..34C..
...xyz.
yyy.....

Lookup Query

Uniques
34C
ABC
111

期望输出

Column1New Column
...111..111
..ABC...ABC
..34C...34C
....xyz.
yyy.....

解决方案

根据不同数据库,可采用以下SQL语句实现:

SQL Server

-- 若Column1仅匹配一个唯一值,直接关联
SELECT 
    m.Column1,
    l.Uniques AS [New Column]
FROM MainQuery m
LEFT JOIN LookupQuery l 
    ON m.Column1 LIKE '%' + l.Uniques + '%'

-- 若Column1可能匹配多个值,仅返回第一个匹配结果
SELECT 
    m.Column1,
    l.Uniques AS [New Column]
FROM MainQuery m
OUTER APPLY (
    SELECT TOP 1 Uniques 
    FROM LookupQuery 
    WHERE m.Column1 LIKE '%' + Uniques + '%'
) l

PostgreSQL

-- 基础匹配
SELECT 
    m.Column1,
    l.Uniques AS "New Column"
FROM MainQuery m
LEFT JOIN LookupQuery l 
    ON m.Column1 ~* l.Uniques;

-- 仅返回第一个匹配结果
SELECT 
    m.Column1,
    l.Uniques AS "New Column"
FROM MainQuery m
LEFT JOIN LATERAL (
    SELECT Uniques 
    FROM LookupQuery 
    WHERE m.Column1 ~* Uniques
    LIMIT 1
) l ON true;

MySQL

-- 基础匹配
SELECT 
    m.Column1,
    l.Uniques AS `New Column`
FROM MainQuery m
LEFT JOIN LookupQuery l 
    ON LOCATE(l.Uniques, m.Column1) > 0;

-- 仅返回第一个匹配结果
SELECT 
    m.Column1,
    (SELECT Uniques 
     FROM LookupQuery 
     WHERE LOCATE(Uniques, m.Column1) > 0
     LIMIT 1) AS `New Column`
FROM MainQuery m;

内容的提问来源于stack exchange,提问作者irene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:39:34