2016-11-07 83 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"