我在case-when块中使用了一个巨大的查询。 我的查询如下:
SELECT 'TEST' FROM DUAL WHERE 1=1 AND EXISTS(
SELECT
CASE
WHEN EXISTS
(Select 1 from dual where 1=2)
THEN 1
ELSE
(Select 1 from dual where 1=2)
END
FROM DUAL);
我只想在case-when语句返回记录时执行我的select语句。但是,它始终打印'Test',因为此代码始终返回NULL:
SELECT
CASE
WHEN EXISTS
(Select 1 from dual where 1=2)
THEN 1
ELSE
(Select 1 from dual where 1=2)
END
所以基本上我只想在没有返回记录(或空值)的情况下打印“TEST”。我怎样才能做到这一点?
答案 0 :(得分:2)
具有NULL
值的一列的行与不存在的行不同。因此,使用EXISTS
无法完全满足您的需求。一种方法是:
SELECT 'TEST'
FROM DUAL
WHERE 1 = 1 AND
1 = (SELECT CASE WHEN EXISTS(Select 1 from dual where 1=2)
THEN 1
ELSE 0
END
FROM DUAL
);
即,查找特定值,而不是检查是否存在行。
答案 1 :(得分:0)
我们可以使用下面的方法来处理NULL
slider.oninput = function() {
output.innerHTML = this.value;
}
function updateValue() {
var rangeInput = document.getElementById("myRange").value
if (rangeInput == 20) {
$("#box").css({'background':'red'});
}
if (rangeInput == 40) {
$("#box").css({'background':'blue'});
}
if (rangeInput == 60) {
$("#box").css({'background':'pink'});
}
if (rangeInput == 80) {
$("#box").css({'background':'green'});
}
}