如何实施"LIKE ANY"在BigQuery(标准SQL)中? [英] How to implement "LIKE ANY" in BigQuery (standard SQL)?

查看:367
本文介绍了如何实施"LIKE ANY"在BigQuery(标准SQL)中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用像任何东西一样"的功能.但是,BigQuery无法识别"ANY"运算符.有什么功能可以代替"LIKE ANY"吗?

I would like to use "like any" function. However, BigQuery doesnot recognize "ANY" operator. Is there any function which can replace "LIKE ANY" ?

Bigquery-标准SQL

Bigquery - Standard SQL

    SELECT
      date,
      CONCAT(fullvisitorid, CAST(visitid AS string)) ord_browsers,
      hits.appInfo.landingScreenName,
      channelgrouping,
      trafficSource.source,
      trafficSource.medium,
      CASE
        WHEN channelgrouping = 'seo_brand' THEN 'Branded'
        WHEN hits.appInfo.landingScreenName LIKE '%/article%'
      OR hits.appInfo.landingScreenName LIKE '%/p/%' THEN 'ADS'
        WHEN (hits.appInfo.landingScreenName LIKE ANY ('%/damesmode/%',  '%/herenkleding/%',  '%/kinderkleding/%',  '%/sportkleding/%')) THEN 'Plist'
        ELSE 'rest'
      END Landing_page
    FROM
      `meta-geography-145406.81187684.ga_sessions_*`,
      UNNEST(hits) AS hits
    WHERE
      (_table_suffix BETWEEN '20190201'
        AND '20190207')

语法错误:[12:47]处出现意外的关键字ANY

Syntax error: Unexpected keyword ANY at [12:47]

推荐答案

具有相同问题的简单查询:

Simpler query with the same problem:

WITH table AS (
  SELECT 'XXXX/herenkleding/XXX' x
)

SELECT x
FROM TABLE
WHERE x LIKE ANY ( 
  '%/damesmode/%'  '%/herenkleding/%',  '%/kinderkleding/%',  '%/sportkleding/%'
)

Syntax error: Unexpected keyword ANY at [2:6]

替代方法1:替换为一系列喜欢或"

Alternative 1: Replace with a series of LIKE OR

SELECT x
FROM TABLE
WHERE (x LIKE '%/damesmode/%' 
OR x LIKE '%/herenkleding/%'
OR x LIKE '%/kinderkleding/%'
OR x LIKE'%/sportkleding/%')

XXXX/herenkleding/XXX

替代2:组合成一个正则表达式

Alternative 2: Combine into one regular expression

WITH table AS (
  SELECT 'XXXX/herenkleding/XXX' x
)

SELECT x
FROM TABLE
WHERE REGEXP_CONTAINS(x
  , '/(damesmode|herenkleding|kinderkleding|sportkleding)/')

XXXX/herenkleding/XXX

这篇关于如何实施"LIKE ANY"在BigQuery(标准SQL)中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆