所以我有以下问题:
SELECT CASE
WHEN (SELECT COUNT(col)
FROM table
WHERE <some conditions>) = 0 THEN 0
ELSE (SELECT col
FROM table
WHERE <some conditions>
)
END
带计数的第一个语句返回0但是case语句似乎跳转到else子句,然后返回一个没有值的值。
这是在小提琴中复制的问题:
http://sqlfiddle.com/#!6/6ae7c3/3
思想?
答案 0 :(得分:1)
这不是错误。它正在返回0
,但会转换为datetime
。你可以得到同样的东西:
SELECT cast(0 as datetime)
如果它转到else
子句,它将返回NULL
。