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

AWS QuickSight如何构建计算字段实现两字符串列互相包含匹配

AWS QuickSight 实现两字符串双向包含匹配的计算字段方法

QuickSight 中自带的 locate() 函数完全可以实现和 Power BI CONTAINSSTRING 等价的包含判断逻辑:该函数会返回待查找子串在目标字符串中首次出现的起始位置,未找到子串时返回0,只要判断返回值大于0,就能确认存在包含关系。

等价于提供的Power BI逻辑的计算字段表达式

直接在QuickSight新建计算字段时粘贴以下代码即可,返回结果和原Power BI逻辑完全一致,匹配时返回Yes,不匹配返回No:

ifelse(
  locate({Registered Owner}, {Alias_AKA.1}) > 0
  OR locate({Alias_AKA.1}, {Registered Owner}) > 0,
  "Yes",
  "No"
)

逻辑说明

  • locate(检索目标字符串, 待查找子串):注意两个参数的顺序,第一个参数是被搜索的文本,第二个是要匹配的子串
  • 两个locate判断用OR连接,刚好覆盖双向包含场景:既检查Registered Owner是否包含Alias_AKA.1,也反向检查Alias_AKA.1是否包含Registered Owner
  • QuickSight 条件分支使用ifelse()函数,参数顺序为「判断条件, 条件成立返回值, 条件不成立返回值」,和Power BI的IF()参数逻辑一致,只是函数名不同

常用变体

  • 如果需要返回整数值(1=匹配,0=不匹配)代替Yes/No文本,直接替换返回值即可:
ifelse(
  locate({Registered Owner}, {Alias_AKA.1}) > 0
  OR locate({Alias_AKA.1}, {Registered Owner}) > 0,
  1,
  0
)
  • 如果需要忽略大小写做匹配,可以先用tolower()/toupper()统一两个字段的大小写后再判断:
ifelse(
  locate(tolower({Registered Owner}), tolower({Alias_AKA.1})) > 0
  OR locate(tolower({Alias_AKA.1}), tolower({Registered Owner})) > 0,
  "Yes",
  "No"
)

之前尝试的locate({Registered Owner},{Alias_AKA.1})只做了单方向的包含检索,既没有加反向匹配判断,也没有通过返回值>0的条件输出布尔结果,所以无法直接得到预期的匹配输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:56:49