Ngữ pháp ngôn ngữ truy vấn Google Ads

Dưới đây là nội dung tham khảo ngữ pháp cho Ngôn ngữ truy vấn Google Ads (bằng ký hiệu biểu thức chính quy):

Query            -> SelectClause FromClause WhereClause? OrderByClause? LimitClause? ParametersClause?
SelectClause     -> SELECT FieldName (, FieldName)*
FromClause       -> FROM ResourceName
WhereClause      -> WHERE Condition (AND Condition)*
OrderByClause    -> ORDER BY Ordering (, Ordering)*
LimitClause      -> LIMIT PositiveInteger
ParametersClause -> PARAMETERS Literal = Value (, Literal = Value)*

Condition        -> FieldName Operator Value
Operator         -> = | != | > | >= | < | <= | IN | NOT IN |
                    LIKE | NOT LIKE | CONTAINS ANY | CONTAINS ALL |
                    CONTAINS NONE | IS NULL | IS NOT NULL | DURING |
                    BETWEEN | REGEXP_MATCH | NOT REGEXP_MATCH
Value            -> Literal | LiteralList | Number | NumberList | String |
                    StringList | Function
Ordering         -> FieldName (ASC | DESC)?

FieldName        -> [a-z] ([a-zA-Z0-9._])*
ResourceName     -> [a-z] ([a-zA-Z_])*

StringList       -> ( String (, String)* )
LiteralList      -> ( Literal (, Literal)* )
NumberList       -> ( Number (, Number)* )

PositiveInteger  -> [1-9] ([0-9])*
Number           -> -? [0-9]+ (. [0-9] [0-9]*)?
String           -> (' Char* ') | (" Char* ")
Literal          -> [a-zA-Z0-9_]*

Function         -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS |
                    LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN |
                    LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY |
                    THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY
  • ?cho biết phần tử không bắt buộc.
  • * có nghĩa là trở lên; + có nghĩa là một hoặc nhiều.
  • (xxxxxx) cho biết một nhóm.
  • [a-z0-9] biểu thị phạm vi ký tự.
  • | là viết tắt của "or".
  • Toán tử REGEXP_MATCH sử dụng cú pháp RE2.
  • Để khớp một ký tự [, ], % hoặc _ bằng toán tử LIKE, hãy đặt ký tự đó trong dấu ngoặc vuông. Ví dụ: điều kiện

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    

    sẽ khớp với tất cả các giá trị campaign.name bắt đầu bằng [Earth_to_Mars].