2016-11-07 84 views
0

我從來沒有與方案合作過。如何比較方案中的列值

我必須遍歷表列以確保結果集中的所有值都是相同的。如果所有的值都相等,那麼我會寫他們已經被檢查過。

可以說我有一個名爲Car的db表,名爲TirePressure。 select語句將返回4個TirePressure值。如果值都相同,我需要寫一個結果。

(if (zero? (gSelectOne stmt (string-append "SELECT TirePressure FROM Car WHERE VIN = "ABCDEF"))) 
    (if (= 48 (gGetInt (stmt "TirePressure"))) 
     (begin (gSetIntValue (mCtl "TiresChecked") 1)) 
    ) 

請忽略數據庫違規,這只是一個例子。

任何幫助表示讚賞。

回答

0

一種if是一種特殊形式(對於非功能,如在任何其他語言ifwhile花式口齒不清談話),其採用3倍的表達,一個predicate,一個consequentalternative。像這樣:

(if predicate 
    consequent 
    alternative) 

每個表達式所以如果謂詞不是#f(因此真)consequent被評估,並且是代碼的結果返回一個值。如果不是對替代方案的評估是結果。

想象一下,你要檢查,如果變量abc是零,你可以這樣做:

(= 0 a b c) ; ==> #t/#f 

所以想象有成爲prerssures的列表中,我們可以只是做一個表達式變量res

(define res '(0 0 0)) 
(if (apply = 0 res) 
    "all zero" 
    "not good") 
; ==> "all zero"