列参照

構文

column_reference ::= id ["." id]

セマンティクス

列参照式は、コンテキスト行(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"}