簡體   English   中英

如何確保返回是一個數組?

[英]How can I make sure the return is an array?

我正在使用 COALESCE 運算符來確保我返回一致的數據集。

查詢如下所示

SELECT c.id, c.ItemLevel, c.ItemNo, bv.variantId, bv.variantDescription, c.DetailedData.locales[0].images ?? c.BasicData.asset.assets[0].locations[1].path AS images, c.PriceData.WhitePrice, c.PriceData.RedPrice, c.PriceData.DiscountPercentage, c.PriceData.TypeOfDiscount
FROM c
JOIN bv IN c.BasicData.base.sales.variants
WHERE c.brand = 'XXX'
AND c.Consumer = 'YYY'
AND bv.variantId = 'TTT'
AND c.Season = 'XXX'

我的挑戰是c.DetailedData.locales[0].images是一個數組,但c.BasicData.asset.assets[0].locations[1].path不是。

我需要c.BasicData.asset.assets[0].locations[1].path是一個數組,以便返回的 JSON 是一致的,這樣我就可以直接在我的移動應用程序中循環這個數組。

如何才能做到這一點?

我可能會得到你的積分。

例如,您有以下 2 個示例文檔:

[
    {
        "DetailedData": {
            "locales": [
                {
                    "images": [
                        {
                            "image": "pic1"
                        },
                        {
                            "image": "pic2"
                        }
                    ]
                }
            ]
        }
    },
    {
        "DetailedData": {},
        "BasicData": {
            "asset": {
                "assets": [
                    {
                        "locations": [
                            {
                                "path": "AAA"
                            },
                            {
                                "path": "BBB"
                            }
                        ]
                    }
                ]
            }
        }
    }
]

如果你執行你的 sql,你會得到不同的格式:

SELECT c.DetailedData.locales[0].images ?? c.BasicData.asset.assets[0].locations[1].path AS images
FROM c

在此處輸入圖片說明

您可以添加[]來重置列,例如:

SELECT c.DetailedData.locales[0].images ?? [{"image": c.BasicData.asset.assets[0].locations[1].path}] AS images
FROM c

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM