使用 MS SQL 服务器 2008。
我有一个查询如下:
SELECT * FROM #PreModuleAllData WITH(NOLOCK)
WHERE (@Country != 'DEFAULT' AND @Country != '' AND([Language] = @Country ))
OR (@UserType != 'DEFAULT' AND @UserType != '' AND([UserType] = @UserType ))
OR (@Group != 'DEFAULT' AND @Group != '' AND([Company] = @Group ))
OR (@CodeUsage != 'DEFAULT' AND @CodeUsage != '' AND([User Code]= @CodeUsage ))
如果任何参数设置为“”或默认值,则计划是返回所有数据。如果使用了参数,它应该根据特定的 where 子句返回。
例如,如果参数@country 设置为一种语言,即英语,则查询返回数据。
但是,如果所有参数都设置为默认值,则不会返回任何内容,但我需要返回所有记录,我感觉逻辑缺少一些非常简单的东西,但我的眼睛看不出原因。
有什么线索吗?