定数式

構文

constant_expression ::= number | string | TRUE | FALSE | NULL

number ::= [MINUS] (FLOAT_CONSTANT | INT_CONSTANT | NUMBER_CONSTANT)
string ::= STRING_CONSTANT | DSTRING_CONSTANT

セマンティクス

INT_CONSTANT、FLOAT_CONSTANT、NUMBER_CONSTANT、STRING_CONSTANTおよびDSTRING_CONSTANTの構文は、識別子の項に記載されています。

現行バージョンでは、問合せに次の定数(リテラルとも呼ばれる)を含めることができます。

文字列

文字列リテラルは、二重引用符または一重引用符で囲まれたUnicode文字の順序です。文字列リテラルは文字列項目に変換されます。文字列リテラルに出現するエスケープ・シーケンスは、対応する文字列項目内の対応する文字に変換されることに注意してください。

整数

整数リテラルは1つ以上の数字の連続です。整数リテラルは、値が4バイトに収まる場合は整数項目に、8バイトに収まる場合はLong項目に、それ以外の場合は数値項目に変換されます。

浮動小数点

浮動小数点リテラルは、10進表記または指数、あるいはその両方を使用して実数を表します。浮動小数点リテラルは、可能な場合はDouble項目に、それ以外の場合は数値項目に変換されます。

数値

数値リテラルは、後にnまたはN文字が続く整数または浮動小数点リテラルです。数値リテラルは、常に数値項目に変換されます。

TRUE/FALSE

TRUEおよびFALSEリテラルは、それぞれブールのtrueおよびfalse項目に変換されます。

NULL

NULLリテラルはjson null項目に変換されます。

例6-89 航空手荷物追跡アプリケーション・データから、JTR空港に手荷物が配送された乗客のリストをフェッチします

SELECT fullname, bag.bagInfo.id, bag.bagInfo.tagNum
FROM BaggageInfo bag
WHERE bag.bagInfo.lastSeenStation =any "JTR"

説明: BaggageInfoテーブルで、lastSeenStationフィールドには、乗客の受託手荷物の現在の場所に関する情報が含まれます。この問合せでは、JTR空港に配送された手荷物のIDおよびタグ番号をフェッチします。WHERE句では、文字列リテラル"JTR"を定数式として使用します。ここでは、bagInfoは配列で、bag.bagInfo.lastSeenStationは順序です。lastSeeStationがJTRであった順序内の要素を取得します。値比較演算子複数項目の順序には効果がないため、値比較演算子'='に加えて順序比較演算子anyを使用してlastSeeStationフィールドを比較します。

乗客が複数の手荷物を持っている場合、結果にはいずれの手荷物のIDとタグ番号もリストされます。

出力:
{"fullname":"Gerard Greene","id":"79039899152842","tagNum":"1765780626568"}
{"fullname":"Michelle Payne","id":"79039899186259","tagNum":"17657806247861"}
{"fullname":"Lorenzo Phil","id":["79039899187755","79039899197755"],"tagNum":["17657806240001","17657806340001"]}
{"fullname":"Lucinda Beckman","id":"79039899187755","tagNum":"17657806240001"}