IBM Books

Net.Data 參考手冊

條件式變數


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

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

條件式變數的語法為:

test ? trueValue : falseValue

其中:

test
要測試的條件。

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

falseValue
測試為偽時所採用的值。

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

varA = varB ? "value_1" : "value_2"

varB 存在, 則 varA=value_1,否則 varA=value_2

範例 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 子句。


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