AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
リスト変数によって、区切られた値のストリングを組み立てます。 これは、幾つかの WHERE または HAVING 文節に含まれるような複数の項目を持つ、 SQL 照会を構成するときに特に役立ちます。
ブランクは有効です。 通常、値の両側にブランク・スペースを使用します。 ほとんどの照会はブール演算子または数値演算子 (たとえば、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 は NULL なので、 照会の中の whereClause も NULL です。 そうでない場合、 whereClause には選択された値がブール演算子 OR で区切られて入ります。 たとえば、3 つのすべての都市が選択された場合、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) %} %}
この例の表処理変数 VLIST は、 値区切り記号として 2 つの引用符と 1 つの OR 線 ( |) を使用しています。 値のストリングは、引用符の中の値で区切られます。