sql - 如何在sql server的where子句中应用case?
问题描述
我在 SQL Server 中有一个具有以下where
条件的查询
where (Convert(date,AppDate) between Convert(date,''+@DateFrom +'') AND
Convert(date,''+@DateTo+'') and DrCode = '' +@DrCode+'' )
但是我想 and DrCode = '' +@DrCode+''
在 DrCode>0 时添加
如何设置?
解决方案
我不知道你为什么要这样进行字符串连接:
'' + @DateFrom + ''
无论如何,我认为CASE
表达方式不适合您想做的事情。直接在WHERE
子句中说明逻辑即可:
WHERE
CONVERT(date, AppDate) BETWEEN
CONVERT(date, @DateFrom) AND CONVERT(date, @DateTo) AND
((DrCode = @DrCode AND DrCode > 0) OR DrCode <= 0);
推荐阅读
- html - 如何在 div 元素上触发点击事件并显示其相邻元素 JQUERY
- flutter - PageView 导航按钮需要点击 2 次才能实际工作 (Flutter)
- java - 如何在 Neptune 中使用 Gremlin 会话?
- python - 我的 Python 代码有问题。有错误,“未解决的参考”
- github - Github 工作流如何读取托管在同一 GitHub 帐户上的另一个私有存储库中的文件?
- r - 如何从 R 中的对比中删除一个因子?
- python - 从 pytorch 中的附近像素创建新通道
- amazon-cognito - AWS-Amplify:请求中包含的安全令牌无效
- wordpress - 尝试在 bash 脚本中将参数传递给 wp-cli
- javascript - THREE.js CSS2DRenderer - 如何将普通和 CSS2D 图像保存为单个 .jpg 文件?