Welcome to Clojure!

You could just define a function taking a map as an argument and return the
query as a string using destructering [0]

(defn people [{:keys [table person id]}]
  (str "SELECT * FROM " table " WHERE person_id = " person " ORDER BY " id))

You may want to have a look at Sean Cornfield's Honey SQL as well [1].

Hope this helps.

[0] https://clojure.org/guides/destructuring
[1] https://github.com/seancorfield/honeysql

On Sun, Dec 20, 2020, 9:26 AM Ganesh Neelekani <ganeshneelek...@gmail.com>
wrote:

> Hello Team,
>
> I am new to clojure and I wanted to write a function where input from map
> keys are passed as parameter as input to the sql query.
>
> (def query-body1 "
> select first_name, last_name
> from ${table_name}
> where
>   person_id=${person_id}
> order by ${id}
> ")
>
>
> (def query-body2 "
> select first_name, last_name
> from ${table_name}
> where
>   person_id=${person_id},
>   and first_name=${first_name},
>   and last_name=${last_name},
> order by ${id}
> ")
>
> (functiona-name query-body1  (:table_name "Employee", :person_id 123, id:
> "ABC"))
>
> (functiona-name query-body2 (:table_name "Employee", :person_id 123,
> :first_name "John", :last_name "David", id: "ABC"))
>
> output should be
> select first_name, last_name
> from Employee
> where
>   person_id=123,
>   and first_name=John,
>   and last_name=David,
> order by ${id}
>
> How can I achieve this?
>
> Thanks,
> Ganesh N
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/3695bf0e-95df-4bce-b4a1-575c110c7994n%40googlegroups.com
> <https://groups.google.com/d/msgid/clojure/3695bf0e-95df-4bce-b4a1-575c110c7994n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAHKjGjruUrYBbiLn8obCr6AEmf9fYUtdPMse--OccbRYuibG0A%40mail.gmail.com.

Reply via email to