SQL — Construct an SQL string from supplied expressions.
Function
Returns an SQL string generated from the expressions
      args. The expressions are translated into
      SQL strings and then concatenated with a single space delimiting
      each expression.
      
(sql nil)
=> "NULL"
(sql 'foo)
=> "FOO"
(sql "bar")
 => "'bar'"
 
(sql 10)
=> "10"
(sql '(nil foo "bar" 10))
=> "(NULL,FOO,'bar',10)"
(sql #(nil foo "bar" 10))
=> "NULL,FOO,'bar',10"
        
(sql [select [foo] [bar] :from [baz]] 'having [= [foo id] [bar id]] 
     'and [foo val] '< 5)
=> "SELECT FOO,BAR FROM BAZ HAVING (FOO.ID = BAR.ID) AND FOO.VAL < 5"
      An error of type sql-user-error
      is signalled if any element in args is
      not of the supported types (a symbol, string, number or symbolic
      SQL expression) or a list or vector containing only these
      supported types.