メイン コンテンツをスキップする

SELECT句を使う

SELECT句は、クエリーの結果として返されるエレメントを定義するために使われます。

SELECTキーワードに後続できるものは以下の通りです:
  • 単一値、レコード、配列のいずれかを返す単純式または条件式です。
    SELECT expression          
  • キー/値ペアを返すブロック。単純識別子または代入式を使えば、新しいキーを作成できます。
    SELECT {
    	identifier,
    	identifier = expression
    }
    値として使用する式は単純式または条件式となります。
  • 親クエリーの結果内でネスト化された結果を返す、括弧の間のサブクエリー:
    SELECT (
       FROM identifier1
       SELECT {
          identifier2,
          identifier3
       }
    )
  • 括弧で囲まれたサブクエリーに後続されて、1つのレコード内にある複数のクエリーの結果を返す識別子:
    SELECT {
    	identifier1 = (query1),
    	identifier2 = (query2)
    }
情報メモ注: 識別子のみを使用する時に、入力内にエレメントが参照されます。出力フィールド名は入力フィールド名と同じになります。
配列を生成するサブクエリーでは、配列から特定のアイテムを返すインデックスを指定できます。インデックスは、サブクエリーの閉じ括弧の後にあると、括弧で囲まれる必要があります。
SELECT ( FROM identifier1 SELECT { identifier2 } )[index]
たとえば次の入力データでは:
{
	"customers": [
		{
			"firstName": "John",
			"lastName": "Smith",
			"address": {
				"street": "690 River St.",
				"city": "Hanover, MA",
				"zipcode": "02340"
			},
			"orders": [
				{
					"order_id": "abc-12345",
					"items": [
						{
							"item_id": "97516848-jiargn",
							"quantity": 2
						}
					]
				}
			]
		},
		{
			"firstName": "Jane",
			"lastName": "Doe",
			"address": {
				"street": "420 Green St.",
				"city": "Boston, MA",
				"zipcode": "02115"
			},
			"orders": [
				{
					"order_id": "def-12345",
					"items": [
						{
							"item_id": "97516848-kftesn",
							"quantity": 3
						},
						{
							"item_id": "96946848-metasb",
							"quantity": 1
						}
					]
				}
			]
		}
	]
}
ネスト化されたクエリーを含むSELECT句を使用して、顧客名の配列とアイテムIDの配列内にある1番目の項目を含むレコードを返すことができます。
SELECT {
 customers = (
  FROM customers AS c 
  SELECT { 
   name = concatWith(" ", c.firstName, c.lastName),
   c.address
  }
 ),
 items = (
  FROM customers AS c UNNEST c.orders AS o UNNEST o.items AS i 
  SELECT {i.item_id}
 )[0]
}
このクエリーは次の結果を返します:
{
	"customers": [
		{
			"name": "John Smith",
			"address": {
				"street": "690 River St.",
				"city": "Hanover, MA",
				"zipcode": "02340"
			}
		},
		{
			"name": "Jane Doe",
			"address": {
				"street": "420 Green St.",
				"city": "Boston, MA",
				"zipcode": "02115"
			}
		}
	],
	"items": {
		"item_id": "97516848-jiargn"
	}
}

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。