این صفحه شامل مرجع گرامر زبان پرسوجوی گوگل ادز است. برای جزئیات ساختار پرسوجو، به ساختار پرسوجو مراجعه کنید.
مرجع دستور زبان
مرجع گرامر زبان کوئری گوگل ادز (به صورت عبارت منظم) در اینجا آمده است:
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 IS NULL
| FieldName IS NOT NULL
| FieldName BETWEEN Value AND Value
| FieldName Operator Value
Operator -> "=" | "!=" | ">" | ">=" | "<" | "<=" | IN | NOT IN
| LIKE | NOT LIKE | CONTAINS ANY | CONTAINS ALL
| CONTAINS NONE | DURING
| 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-Z0-9_])*
StringList -> "(" String ("," String)* ")"
LiteralList -> "(" Literal ("," Literal)* ")"
NumberList -> "(" Number ("," Number)* ")"
PositiveInteger -> [1-9]([0-9])*
Number -> -?[0-9]+(\.[0-9]+)?
String -> ("'" SingleQuoteChar* "'") | ('"' DoubleQuoteChar* '"')
SingleQuoteChar -> [^'\\\r\n] | EscapeSequence
DoubleQuoteChar -> [^"\\\r\n] | EscapeSequence
EscapeSequence -> "\\" ("\\" | "'" | '"' | "n" | "r" | "t")
Literal -> [a-zA-Z]([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
-
?نشاندهنده یک عنصر اختیاری است. -
*به معنی صفر یا بیشتر است؛+به معنی یک یا بیشتر است. -
(...)نشاندهندهی گروهبندی است، در حالی که"("و")"نشاندهندهی پرانتزهای حرفی هستند. -
[a-z0-9] به معنی محدوده کاراکترها و[^...] به معنی هر کاراکتری به جز کاراکترهای ذکر شده است. -
|مخفف «یا» است.
قوانین و محدودیتها
FromClauseهنگام درخواست ازGoogleAdsServiceالزامی است و هنگام درخواست ازGoogleAdsFieldServiceباید حذف شود.WhereClauseفقط از ترکیب شرطها باANDپشتیبانی میکند.ORمنطقی پشتیبانی نمیشود؛ به جای آن از عملگرINیاREGEXP_MATCHاستفاده کنید.عملگر
REGEXP_MATCHاز سینتکس RE2 استفاده میکند.برای تطبیق یک کاراکتر حقیقی
[،]،%یا_با استفاده از عملگرLIKE، کاراکتر را داخل کروشه قرار دهید. برای مثال، شرط زیر با تمام مقادیرcampaign.nameکه با[Earth_to_Mars]شروع میشوند، مطابقت دارد:campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'عملگر
LIKEفقط روی فیلدهای رشتهای قابل استفاده است، نه روی آرایهها.