15 sql-server
我有一个简单的查询,我想要做的就是检查这个变量是真还是假,并且由于某种原因它总是返回false.
DECLARE @CappedIFCheck BIT
SET @CappedIFCheck = (SELECT distinct 1
FROM mytable
WHERE 1=1);
select @CappedIFCheck
IF (@CappedIFCheck = 'True')
BEGIN
SELECT 'true';
END
ELSE
BEGIN
SELECT 'false';
END
Run Code Online (Sandbox Code Playgroud)
Mar*_*ith 19
bitSQL Server中的变量可以有三个值.0,1和NULL.
字符串'true'和'false'映射分别1和0.
您的代码未考虑第三个可能的值.如果mytable为空,则变量不会被初始化并具有值NULL.
SELECT CASE @CappedIFCheck
WHEN 'True' THEN 'true'
WHEN 'False' THEN 'false'
ELSE 'unknown'
END
Run Code Online (Sandbox Code Playgroud)
我不确定你的代码究竟在做什么,但这是一种非常低效的处理事情的方式.你应该使用EXISTS.
| 归档时间: |
|
| 查看次数: |
53266 次 |
| 最近记录: |