如何設置一組空或空值像一個默認值1到默認?如何設置爲空值在Oracle SQL
到目前爲止,我有這個說法,但如果我得到空值我要處理的是:
select case when count(*)=0
then 0
else 1
end OUTPUT
from TESTTBL
where timestamp = to_char(sysdate-1, 'yyyymmdd')||'0000';
如何設置一組空或空值像一個默認值1到默認?如何設置爲空值在Oracle SQL
到目前爲止,我有這個說法,但如果我得到空值我要處理的是:
select case when count(*)=0
then 0
else 1
end OUTPUT
from TESTTBL
where timestamp = to_char(sysdate-1, 'yyyymmdd')||'0000';
SELECT CASE WHEN EXISTS
(SELECT *
FROM TESTTBL
WHERE timestamp = to_char(sysdate-1, 'yyyymmdd') || '0000'
)
THEN 1
ELSE 0
END AS OUTPUT
FROM dual
編輯
添加了FROM dual
,因爲Oracle不允許SELECT
沒有FROM
子句。
你的意思是檢查null值,並設置一些默認情況下,如果是的話
select nvl(column_name,'DEFAULT') from TESTBL where timestamp = to_char(sysdate-1, 'yyyymmdd')||'0000';
在這裏你去
SELECT DECODE(count(*),0,0,
1) OUTPUT
FROM TESTTBL
WHERE TIMESTAMP = TO_CHAR(SYSDATE-1, 'yyyymmdd')||'0000';
使用解碼像
SELECT supplier_name,
decode(supplier_id, 10000, 'Google',
10001, 'Microsoft'
'Sony') result
FROM suppliers;
相當於
IF supplier_id = 10000 THEN
result := 'Google';
ELSIF supplier_id = 10001 THEN
result := 'Microsoft';
ELSE
result := 'Sony';
END IF;
,或者使用合併
SELECT coalesce(address1, address2) result
FROM suppliers;
這相當於
IF address1 is not null THEN
result := address1;
ELSIF address2 is not null THEN
result := address2;
ELSE
result := null;
END IF;
+1這也適用。 – DCookie
你在哪裏想獲得空值? – zerkms
那麼如果我沒有我的時間戳標準值?那麼計數將始終爲0?我只是在想,如果我沒有記錄。 – jdamae
如果沒有記載,符合該條件 - 你會得到空的記錄,而不是'null' – zerkms