在WHERE條件表達式中存在IN/NOT IN的邏輯符號,其格式為:expression IN/NOT IN exp_set,其中exp_set為子查詢或者多個常量。語法文件為:
equation
:expression (("not in"^|"in"^|"在于"^|"不在于"^) exp_set);
exp_set
: LPAREN constexpset RPAREN
{#exp_set = #([SUBCONTAIN_OP, "subcontain_op"], #exp_set);}
;
constexpset
: constant (COMMA^ constant)*
;
1、當碰到IN/NOT IN時,IN/NOT IN為根節點,expression、exp_set為葉子節點。
2、exp_set必須要有左括號、右扣號,整個exp_set虛構為一個subcontain_op的根節點,LPAREN constexpset RPAREN分別為它的葉子節點。
3、constexpset為多個常量組成,格式為12, 15, 30。當存在超過兩個節點時,12和15為一級葉子節點,第一個,為它們的根節點,30和第一個,組成第二個,的葉子節點,如此迭加。
AI_94傳票對照表.金額 不在于(12, 34, 45, 50) 生成的抽象語法樹如下:

posted on 2007-04-06 20:23
LORD BLOG 閱讀(549)
評論(0) 編輯 收藏 所屬分類:
工作日志