




 
In some cases it is necessary to build SQL-expressions dynamically under program control.
The function 
sql-operation
 returns the SQL expression for an operator applied to its arguments. It also supports building SQL expressions which contain arbitrary SQL functions.
The function 
sql-expression
 makes an SQL expression from the given keywords. This is equivalent to the first and third uses of the 
[]
 syntax as discussed in The "[...]" Syntax.
sql-operator
 returns the Lisp symbol for an SQL operator.
The function 
sql
 makes SQL out of the arguments supplied. Each argument to 
sql
 is turned into SQL and then the 
args
 are concatenated with a single space between each pair. A Lisp string maps to the same characters enclosed between single quotes (this corresponds to an SQL string constant). 
nil
 maps to 
"NULL"
, that is, an SQL null value. Symbols and numbers map to strings. A list maps to a parenthesised, comma-separated expression. A vector maps to a comma-separated expression, which allows the easy generation of SQL lists that require no parentheses such as table lists in select statements.
The rules for the conversion via 
sql
 are fully specified in the 
LispWorks Reference Manual
.