SQL raw

This guide assumes familiarity with:

sql.raw lets you dynamically build SQL by embedding raw strings:

IMPORTANT

Beware sql.raw does not get escaped and going to be embedded into SQL statement as is

await sql`select * from \`users\` ${sql.raw("where id = 10")}`
select * from `users` where id = 10;
const listUsers = async (filter: string | undefined) => {
  const whereClause = filter ? sql.raw(` where ${filter}`) : sql.raw("");
  return sql`select * from \`users\`${whereClause}`;
}

await listUsers("`id` = 10");
await listUsers("`name` = 'Dan'");
await listUsers();
select * from `users` where `id` = 10;
select * from `users` where `name` = 'Dan';
select * from `users`;