AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X |
可以列出列表变量来构建一个定界的值字符串。当要构建一个具有多个项目的 SQL 查询时 (象某些 WHERE 或 HAVING 语句一样),它们特别有用。
其中的空格是必须的。 通常,值的两边都有一个空格。大部分查询使用布尔或 数学运算符(例如,AND、OR 或 >)。请参阅LIST 语句中的语法和其它信息。
例 1:条件、隐藏和列表变量的使用
%HTML(INPUT){ <FORM METHOD="POST" ACTION="/cgi-bin/db2www/example2.max/report"> Select one or more cities:<BR> <INPUT TYPE="checkbox" NAME="conditions" VALUE="$$(cond1)">Sao Paulo<BR> <INPUT TYPE="checkbox" NAME="conditions" VALUE="$$(cond2)">Seattle<BR> <INPUT TYPE="checkbox" NAME="conditions" VALUE="$$(cond3)">Shanghai<BR> <INPUT TYPE="submit" VALUE="Submit Query"> </FORM> %} %DEFINE{ DATABASE="custcity" %LIST " OR " conditions cond1="cond1='Sao Paolo'" cond2="cond2='Seattle'" cond3="cond3='Shanghai'" whereClause= ? "WHERE $(conditions)" : "" %} %FUNCTION(DTW_SQL) mySelect(){ SELECT name, city FROM citylist $(whereClause) %} %HTML(REPORT){ @mySelect() %}
在 HTML 表中,如果没有选择任何框,则 conditions 为空,因此查询中 的 whereClause 也为空。 否则,whereClause 具有选定 值,值之间用布尔运算符 OR 分隔。例如,如果选择了所有这三个城市,则 SQL 查询为:
SELECT name, city FROM citylist WHERE cond1='Sao Paolo' OR cond2='Seattle' OR cond3='Shanghai'
例 2:值分隔符
%DEFINE %LIST " | " VLIST %REPORT{ %ROW{ <EM>$(ROW_NUM):</EM> $(VLIST) %} %}
表格处理变量 LIST 使用两个引号和一个 OR 栏(" | ")作为此例中的值分隔符。值的字符串之间用引号中的值来分隔。