AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
您可以使用 LIST 語言結構建置一個有分隔設定的值串。在您希望以多個項目建構一個 SQL 查詢時, (例如,常見於一些 WHERE 或 HAVING 子句中), 這類變數尤其有用。
空白是具有其意義的。您通常會在值的兩邊留空白。大部份的查詢會使用布林或算術運算子 (例如,AND、OR 或 >)。有關語法及範例,請參閱 LIST 陳述式。
範例 1: 使用條件式、隱藏及列示變數
%HTML(INPUT){ <form method="post" action="/cgi-bin/db2www/example2.max/report"> 請選取一或多個都市:<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) %} %}
在此例中,表格處理程序變數 VLIST 是使用兩個雙引號和一個 OR 條欄 ( |), 作為值區隔符號。字值串是由用引號括住的值加以分隔。