sql server - MS SQL - JOIN only if parameter exists in stored proc -


i have stored proc has following (simplified example):

declare @id int = null select * table1 t1 inner join table2 t2 on ((@id not null) , (t2.id = @id)) 

the purpose of return rows if @id not provided, else return rows matching @id.

works expected long @id provided. returns no rows @id null.

i thought, maybe

inner join table t2 on (@id null or ((@id not null) , (t2.id = @id))) 

might work, if @id null, seems return unending rows (i waited 30 seconds, , past 1m rows. (there 150 rows in table1)

i've read around, , other examples accomplish seem use dynamic sql (which i'd rather not do), or possibility of creating temp table, seems little extreme kind of thing.

what options? thank you.

i doubtful on table joining, tried simplified sql query

declare @id int = null select *  table1 t1 inner join table2 t2 on  t1.id=t2.id @id null or t2.id = @id 

Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -