pro*_*ica 5 sql t-sql sql-server
如果查询没有返回结果,我可以设置变量吗?
DECLARE @Output AS VARCHAR(MAX);
SELECT @Output = 'Old';
SELECT @Output = 'New' WHERE 0 = 1;
PRINT @Output;
Run Code Online (Sandbox Code Playgroud)
输出值为:旧
预期值为:NULL
DECLARE @Output AS VARCHAR(MAX);
SELECT @Output = 'Old';
SELECT @Output = 'New' WHERE 0 = 1;
PRINT @Output;
Run Code Online (Sandbox Code Playgroud)
你得到'Old'原因是变量已经有这个值,它不会更新值,因为在WHERE子句中你使用了 condition 0=1,它会返回FALSE并且变量中的值不会改变。
WHERE 0 = 1 这将是假的
WHERE 0 <> 1 这将是真的
它只是类似于 IF 0=1 THEN UpdateMyVar
所以你的情况的值将始终'Old',它不会返回'New'或NULL两种。
我不知道你有什么做的真的,但如果你想返回NULL再
DECLARE @Output AS VARCHAR(MAX);
SELECT @Output = 'Old';
SELECT @Output = NULL WHERE 0 <> 1; --If 0<> 1 then update my var and set NULL else leave it as it is
PRINT @Output;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3059 次 |
| 最近记录: |