我正在使用Oracle SQL。我有2個場景:如何在oracle中找出非空值(25列)
1)要了解的25列中的至少一個不爲空(可超過1)
2),或者如果所有25列不是空
我是否需要爲所有25列編寫非空條件?
我正在使用Oracle SQL。我有2個場景:如何在oracle中找出非空值(25列)
1)要了解的25列中的至少一個不爲空(可超過1)
2),或者如果所有25列不是空
我是否需要爲所有25列編寫非空條件?
合併應該幫助,像這樣:
SELECT CASE WHEN COALESCE(field1, field2, field3...) is NULL THEN 'AllNULL'
ELSE 'OneOrMoreNotNULL' END as 'NULLcontent' FROM tbl
嘗試是這樣的:
SELECT CASE LENGTH(SUBSTR(COL_1, 1, 1) ||
SUBSTR(COL_2, 1, 1) ||
... ||
SUBSTR(COL_25, 1, 1)
)
WHEN 25 THEN 'ALL NOT NULL'
WHEN 24 THEN '1 COLUMN NULL'
...
END CASE
FROM YOUR_TABLE
如果從varchar
不同的列,您需要將它們轉換成varchar
使用此方法
您可以使用GREATEST(或LEAST)來測試列表中的任何項目是否爲空(對於一致dat的表達式一種)。
select greatest(owner, object_name, to_char(object_id), to_char(data_object_id)) x,
owner, object_name, object_id, data_object_id
from all_objects where object_name in ('DUAL');
如果任何提供給最偉大的表情列表中的數值爲null,則返回值將是空的。如果所有表達式都不爲空,它將只返回一個非空值。
我需要了解數據是否有一列爲空或所有列爲空 –
@Aditya kommu符合您的規範,如第25條中的「至少一列不爲空」中所述。如果發生了變化,請通過編輯鏈接編輯原始帖子。 –