Beware sql.raw
does not get escaped and going to be embedded into SQL statement as is
SQL raw
This guide assumes familiarity with:
sql.raw
lets you dynamically build SQL by embedding raw strings:
IMPORTANT
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];