我正在寻找意见,并可能找到以下具体答案.
此问题适用于SQL Server版本2008 R2 +
在存储过程中,我有一个DATE类型的可选查询参数,我们称之为@MyVar.
存储过程执行以下查询:
SELECT A, B, C
FROM MyTable
WHERE MyTable.Field1 = ISNULL(@MyVar,MyTable.Field1)
Run Code Online (Sandbox Code Playgroud)
如果@MyVar为NULL,则执行ISNULL(@ MyVar,MyTable.Field1)的成本是多少?我想知道分割案例是否更好,例如:
IF (@MyVar IS NULL)
SELECT A, B, C
FROM MyTable
ELSE
SELECT A, B, C
FROM MyTable
WHERE MyTable.Field1 = @MyVar
Run Code Online (Sandbox Code Playgroud)
谢谢!