Pin*_*ing 1 t-sql sql-server stored-procedures
我有一个带有参数的存储过程:
@desk VARCHAR(50)
Run Code Online (Sandbox Code Playgroud)
我想要
SELECT *
FROM dbo.Desk
WHERE DeskName = @desk
Run Code Online (Sandbox Code Playgroud)
并且我还想返回@desk = 'All'.的值时的所有记录。
做到这一点的最佳方法是什么?
只需在您的WHERE子句中包含此条件,如下所示:
SELECT *
FROM dbo.Desk
WHERE DeskName = @desk
OR @desk = 'All'
Run Code Online (Sandbox Code Playgroud)
正如 Martin Smith 在下面评论的那样,它的性能不会是最佳的 - 如果表很小,那么您可能更喜欢这种简洁的方法而不是性能更高的选项,只是为了 T-SQL 代码的清晰度/可维护性,但是也看看他链接到的文章......