IBM Books

解説書

リスト変数


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 線 ( |) を使用しています。 値のストリングは、引用符の中の値で区切られます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]