使用 Bigquery。
我正在尝试合并 Array
SELECT [
case when (colA is not NULL and trim(colA) != "")
then struct("center" as key, colA as value)
else struct(NULL as key, NULL as value)
end,
case when (colB is not NULL and trim(colB) != "")
then struct("owner" as key, colB as value)
else struct(NULL as key, NULL as value)
end
] as labels
FROM `project.dataset.bill`;
这是您的查询的修订版本。试试这个:
SELECT
CASE
WHEN TRIM(IFNULL(colA, '')) = '' AND TRIM(IFNULL(colB, '')) = '' THEN [STRUCT(NULL AS key, NULL AS value)]
ELSE ARRAY_CONCAT(
IF(TRIM(IFNULL(colA, '')) != '', [STRUCT("center" AS key, colA AS value)], []),
IF(TRIM(IFNULL(colB, '')) != '', [STRUCT("owner" AS key, colB AS value)], [])
)
END AS labels
FROM `project.dataset.bill`;