2011-08-31 97 views

回答

4

没有BETWEEN,虽然你可能会使用Lisp的-Y的多参数<,不工作,要么:

;; invalid SQL output 
hello-cql.core> (select (table :abc) (where (< 10 :a 20))) 
SELECT abc.* FROM abc WHERE (10 < a < 20) 

;; valid SQL output 
hello-cql.core> (select (table :abc) (where (and (< 10 :a) (< :a 20)))) 
SELECT abc.* FROM abc WHERE ((10 < a) AND (a < 20)) 
6

你可以写你的拥有between

(defmacro between 
    [x min max] 
    `(and (< ~min ~x) (< ~x ~max))) 

这将与ClojureQL兼容。

相关问题