2011-08-31 51 views

Respuesta

4

No hay BETWEEN, y mientras que podría estar tentado a usar Lisp-y múltiple argumento <, eso no funciona bien:

;; 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

Usted puede escribir su propia between

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

Ésta será compatible con ClojureQL.