為了避免在使用 SQL 的 EXPLODE
函數時產生多余的空值,您可以在查詢中使用 WHERE
子句來過濾空值
SELECT
id,
value
FROM
my_table
LATERAL VIEW EXPLODE(my_array) my_table_exploded AS value
WHERE
value IS NOT NULL;
這個查詢將會返回 my_table
表中每一行的 id
和 my_array
列中的元素。通過使用 LATERAL VIEW EXPLODE
,我們將 my_array
列中的每個元素擴展為一行。然后,我們使用 WHERE
子句過濾掉值為 NULL 的行。
請注意,不同的數據庫管理系統可能有不同的語法。上面的示例適用于 Apache Hive 和 Apache Spark SQL。如果您使用的是其他數據庫,請查閱相應的文檔以獲取正確的語法。