參考手冊

條件式變數


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

條件式變數是根據另一個變數或字串的值所設定。它又稱為 ternary 作業

條件式設定變數的語法為:

condVar = testVar ? trueValue : falseValue

其中:

condVar
要設定的條件式變數。

testVar
用來決定條件的測試變數。空字串會被評估為假。

trueValue
測試變數為真時所採用的值。

falseValue
測試變數為假時所採用的值。

範例 1:用兩個可能的值所定義的條件式變數

varA = varB ? "value_1" : "value_2"

varB 為測試。所以,varA 被指定為 "value_1" 或 "value_2" 的其中一個,其根據 varB 是否存在且不包含 NULL 值而定。

範例 2:用一個變數參照所定義的條件式變數

varname = ? "$(value_1)"

此例中,如果 value_1 為空值, 則 varname 也為空值,否則 varname 設定為 value_1

範例 3:與 LIST 陳述式及 WHERE 子句一起使用的條件式變數

%DEFINE{
%list " AND " where_list
where_list    =  ? "custid = $(cust_inp)"
where_list    =  ? "product_name LIKE '$(prod_inp)%'"
where_clause  =  ? "WHERE $(where_list)"
%}
 
%FUNCTION(DTW_SQL) mySelect(){
   SELECT * FROM prodtable $(where_clause)
%}

條件式和 LIST 變數一起使用時,其效果最佳。 這個範例將告訴您,如何在 DEFINE 區塊中設定 WHERE 子句。 cust_inpprod_inp 這兩個變數是從 Web 瀏覽器傳來的 HTML 輸入變數,通常是從 HTML 套表傳來。where_list 變數是一個 LIST 變數, 它是由兩個條件式陳述式所組成,每一個陳述式都包含來自 Web 瀏覽器的變數。

如果 Web 瀏覽器傳回 cust_inpprod_inp 兩變數所用的值,例如 IBM755C, 則 where_clause 為:

WHERE custid = IBM AND product_name LIKE '755C%'

如果 cust_inpprod_inp 其中一個變數為空值,或者沒有定義, 則 WHERE 子句會變成省略這個空值。 例如:如果prod_inp為空值,則 WHERE 子句將如下所示:

WHERE custid = IBM

如果兩者皆為空值或都沒有定義,則 where_clause 變數為空值, 且含有 $(where_clause) 的 SQL 查詢中,也不會出現任何 WHERE 子句。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]