[英]Google BigQuery - is there a way to search multiple columns for a list of values. Something like CONTAINS_SUBSTR or REGEXP_CONTAINS
我正在尋找一種在多列中搜索特定值列表的方法。
這是一些包含 3 列數據的測試數據:
WITH fieldstosearch AS
(SELECT 'R10.10' as field1, 'R10.11' as field2 , 'R15.11' as field3 UNION ALL
SELECT 'R10.10', 'R20.3', 'R33.33' UNION ALL
SELECT 'R20.0', 'R20.1', 'R33.33' UNION ALL
SELECT 'R10.15', 'R20.4', 'R33.33' UNION ALL
SELECT 'R10.11', 'R10.10', 'R33.33')
我可以使用 REGEXP_CONTAINS function 使用值列表一次成功搜索 1 列(例如 field1),如下所示:
SELECT REGEXP_CONTAINS(field1, 'R10.10|R07.82|R07.89|R07.9')
FROM fieldstosearch
我希望可以使用 CONTAINS_SUBSTR function 來搜索“多個”列以獲取像這樣的特定值列表,但語法已關閉/不起作用:
SELECT CONTAINS_SUBSTR((field1, field2, field3), 'R10.10', 'R07.82', 'R07.89', 'R07.9')
FROM fieldstosearch
我可以搜索多個列,使用 1 個搜索字符串/值,如下所示:
SELECT CONTAINS_SUBSTR((field1, field2, field3), 'R10.10')
FROM fieldstosearch
所以似乎有一種方法可以將 select 多個搜索值添加到 CONTAINS_SUBSTR function?
有沒有人有任何技巧/想法可以在 BigQuery 中實現這一點?
謝謝!
您可以使用以下方法
select *,
regexp_contains(format('%t',(field1, field2, field3)), 'R10.10|R07.82|R07.89|R07.9')
from fieldstosearch
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.