T-SQL動態語法串接
當SQL想要靈活一點,舉例來說,當參數為空值時不用加條件,但有值需要加條件,就可以用動態與髮串接來增加靈活性,不需要在後端做一堆判斷是否為空,以下面為例。
declare @sql varchar(1000) //宣告一個字串存SQL指令
set @sql='
select a,b,c,d //抓a,b,c,d四個 column
from table
where a=''1'' ' //a=1的條件
if(@參數1<>'')
set @sql=@sql+'and b='''+@參數1+''' ' //如果後端傳進來的參數1不為空,在多加 b=參數1 的條件
set @sql=@sql+'order by c' //最後再照c排序
execute(@sql) //執行串接完的SQL指令
留言
張貼留言