列参照
セマンティクス
列参照式は、コンテキスト行(SELECT式が現在処理している行)内の指定された列に格納された項目を返します。構文的には、列参照式は1つの識別子、またはドットで区切られた2つの識別子で構成されます。2つのIDがある場合、最初のIDは表の別名とみなされ、2番目のIDはその表の列名とみなされます。この形式を修飾列名と呼びます。単一のIDは、FROM句内で参照される一部の表の列名に解決されます。ただし、この場合、問合せに参加し、この名前の列を持つ表は複数存在できません。この形式を非修飾列名と呼びます。
例6-90 航空手荷物追跡アプリケーション・データからの乗客の手荷物到着日のフェッチ
SELECT fullname, bag.bagInfo[0].bagArrivalDate
FROM BaggageInfo bag
WHERE ticketNo=1762392135540
説明: BaggageInfo
テーブルで、bagArrivalDate
フィールドには、受託手荷物が到着地空港に配送された日付が含まれます。手荷物到着日をフェッチするには、問合せで修飾列名(bag.bagInfo[0].bagArrivalDate
)を使用します。詳細は、「変数宣言」を参照してください。
ここでは、最初の参照手荷物は、BaggageInfo
表に対する表の別名です。2番目の参照bagInfo[0]
は、bagInfo
JSON配列列の最初の要素に対するものです。3番目の参照は、bagInfo
JSON列内でネストされている実際のフィールドbagArrivalDate
に対するものです。
bagInfo
JSON配列の最初の要素のみを使用して、複数の手荷物を持っている乗客の結果が重複しないようにします。
出力:
{"fullname":"Adelaide
Willard","bagArrivalDate":"2019-02-15T21:21:00Z"}