sql - 为什么这个“WHEN THEN”SQL 查询没有返回预期结果?
问题描述
有人可以解释为什么这个查询会NULL
作为结果出现,但是我设置了@wnum 变量?我已经尝试了我能想到的所有可能和不同的运算符/命令。
结果应该是@wnum3=52,@wnum4=53 如果@wnum=49 或@wnum3=1,@wnum4=2 如果@wnum=50
DECLARE @wnum AS int SET @wnum = 49
DECLARE @wnum3 AS int
DECLARE @wnum4 AS int
SELECT @wnum3
SET @wnum3 = CASE WHEN @wnum >=50 THEN 1 WHEN @wnum <50 THEN @wnum+3
END
SELECT@wnum4
SET @wnum4 = CASE WHEN @wnum >=50 THEN 2 WHEN @wnum <50 THEN @wnum+4
END
解决方案
您在设置变量之前进行选择。交换SET
&SELECT
周围的线:
DECLARE @wnum AS int SET @wnum = 49
DECLARE @wnum3 AS int
DECLARE @wnum4 AS int
SET @wnum3 = CASE WHEN @wnum >=50 THEN 1 WHEN @wnum <50 THEN @wnum+3 END
SELECT @wnum3
SET @wnum4 = CASE WHEN @wnum >=50 THEN 2 WHEN @wnum <50 THEN @wnum+4 END
SELECT @wnum4
推荐阅读
- java - 阻止 WebView 加载特定的 URL
- office-js - 如何在更新后使用 Internet Explorer 11 运行 Word 加载项(Windows 10 版本 >= 1903 / Office 365 版本 >= 16.0.116291)
- angular - PrimeNG:没有 MenuModel 的简单按钮下拉菜单
- docker - 新用户帐户 - 拒绝进入 docker 的权限
- r - 从嵌套列表数据框中删除 NA
- azure-mobile-services - 适用于 Xamarin 表单的 Azure 移动服务 - 冲突解决
- ruby-on-rails - 如何在Rails中将Array的值一一输入到数据库中?
- c - 仅在给定参数时在 Makefile 编译中添加标志
- c# - Asp.NET Core 3 - Azure Active Directory - 令牌验证失败 - 签名验证失败。无法匹配密钥
- typescript - 尝试将模块导入返回到其原始/默认模拟