我怎样才能确保 return 是一个数组?
How can I make sure the return is an array?
我正在使用 COALESCE 运算符来确保我 return 一个一致的数据集。
查询如下所示
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 returned 是一致的,所以我可以直接在我的移动应用程序中循环数组。
如何做到这一点?
我可能会得到你的分数。
例如,您有以下 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
输出:
我正在使用 COALESCE 运算符来确保我 return 一个一致的数据集。
查询如下所示
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 returned 是一致的,所以我可以直接在我的移动应用程序中循环数组。
如何做到这一点?
我可能会得到你的分数。
例如,您有以下 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
输出: