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.