簡體   English   中英

BigQuery:如何檢查 column1 的每個字符串元素是否包含在 column2 中?

[英]BigQuery: How do I check for every string element of column1 whether it is contained in column2?

我正在使用 BigQuery。 我的數據看起來像這樣,我從 Table1 和 Table2 開始:

表格1

Str1
“一種”
“乙”

表2

ID str2
1個 “車”
2個 “蘋果”
3個 “香蕉”
4個 “鮑勃”

如何設計我的查詢以獲取 Table3?

如果在 Table2.Str2 中發現 Table1 的值為 substring,則它具有 Table2.id。

表3

一種 b
1個 0
2個 0
3個 3個
0 4個

謝謝!

考慮以下方法

select * from (
  select id, str1, regexp_contains(str2, str1) contained
  from table2, table1
)
pivot (min(contained) for str1 in ('a', 'b'))        

如果應用於您問題中的樣本數據 - output 是

在此處輸入圖像描述

如果您確實需要 output 看起來與您的問題完全一樣 - 請在下面使用

select if(a, id, 0) a, if(b, id, 0) b from (
  select id, str1, regexp_contains(str2, str1) contained
  from table2, table1
)
pivot (min(contained) for str1 in ('a', 'b'))           

在這種情況下 - output 是

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM