Kel*_*ish 4 t-sql dynamic where conditional-statements
我有一个存储过程,并想知道是否可以where基于参数建立动态条件.
让我说我有这个问题:
SELECT *
FROM tbl_Users
Run Code Online (Sandbox Code Playgroud)
现在,我有一个名为的参数@username,我想用它来建立一个动态where条件(通过我的程序可能是一个或多个条件).为了达到这样的目的,我使用以下语句:
SELECT *
FROM tbl_Users
@username -- where this parameter might hold a condition string such as "Where usr_Username = 5 and usr_first_name like '%Frank%' etc
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
你将不得不为此打破动态sql.
它会运行这样的事情:
declare @sql varchar(max)
set @sql = '
SELECT *
FROM tbl_Users
WHERE ' + @username
exec (@sql)
Run Code Online (Sandbox Code Playgroud)