通配符%运算符不在bigquery上工作

时间:2017-05-23 12:15:14

标签: google-bigquery wildcard

在Bigquery上,我试图选择WHERE项IN('%xxxxxxxxxx','%xxxxxxxxxx')。但是当我拉它时它不会返回任何结果。但是,如果我摆脱了通配符%,它确实会返回结果。我在这里使用了错误的通配符运算符吗?

谢谢!

亚历

2 个答案:

答案 0 :(得分:1)

您需要使用LIKE运算符。例如,

#standardSQL
SELECT *
FROM YourTable
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(['%pattern1', '%pattern2']) AS pattern
  WHERE item LIKE pattern
);

答案 1 :(得分:1)

以下是BigQuery Standard SQL

  
#standardSQL
SELECT *
FROM YourTable
WHERE REGEXP_CONTAINS(item, r'xxxxxxxxxx$|yyyyyyyy$')

您可以使用虚拟数据进行播放,如下所示

#standardSQL
WITH data AS (
  SELECT * 
  FROM UNNEST(['a_item', 'b_item', 'a_piece', 'b_piece', 'a_part', 'b_part']) AS item
)
SELECT *
FROM data
WHERE REGEXP_CONTAINS(item, r'item$|part$')

详细了解REGEXP_CONTAINS