- カテゴリ:
半構造化データ関数と構造化データ関数 (抽出)
GET_IGNORE_CASE¶
オブジェクトからフィールドの値を抽出します。引数のいずれかが NULL の場合、 NULLを返します。
注釈
この関数は GET に似ていますが、フィールド名に大文字と小文字を区別しないマッチングを適用します。
- こちらもご参照ください:
構文¶
OBJECT (または OBJECT を含む VARIANT)
GET_IGNORE_CASE( <object> , <field_name> )
GET_IGNORE_CASE( <variant> , <field_name> )
MAP
GET_IGNORE_CASE( <map> , <key> )
引数¶
variant
ARRAY または OBJECT のいずれかを含む VARIANT に評価される式。
object
キーと値のペアを含む OBJECT に評価される式。
field_name
VARCHAR に評価される式。これは、値を取得するキーと値のペアにあるキーを指定します。
field_name
は空の文字列にはできません。object
が 構造化 OBJECT の場合、field_name
に定数を指定する必要があります。object
に指定されたキーが含まれていない場合:object
が半構造化 OBJECT の場合、関数は NULL を返します。object
が構造化 OBJECT の場合、エラーが発生します。
map
MAP に評価される式。
key
値を取得するキーと値のペアにあるキー。
map
に指定されたキーが含まれていない場合、関数は NULL を返します。
戻り値¶
戻り値は、 ARRAY の指定された要素、または OBJECT にあるキーと値のペアの指定されたキーに対応する値です。
入力オブジェクトが半構造化 OBJECT、 ARRAY、 VARIANT の場合、この関数は VARIANT を返します。次の理由により、データ型は VARIANT です。
ARRAY では、各要素の型が VARIANT のため。
OBJECT では、各キーと値のペアにある値が型 VARIANT のため。
入力オブジェクトが 構造化 OBJECT、構造化 ARRAY、または MAP の場合、関数はオブジェクトに指定された型の値を返します。
例えば、入力オブジェクトの型が ARRAY(NUMBER) の場合、関数は NUMBER を返します。
使用上の注意¶
この関数は、最初に見つかった完全一致を返します。関数があいまいな(大文字と小文字を区別しない)一致のみを検出した場合、一致の1つの値を返します。ただし、あいまいなフィールド名が最初に一致することは保証できません。
GET_IGNORE_CASE は、次の方法で呼び出すことができるバイナリ関数です。
object
は OBJECT 値、field_name
は文字列値で、定数または式です。この GET_IGNORE_CASE のバリエーションは、オブジェクト値から指定された名前を持つフィールド値を抽出します。
v
は、VARIANT 値、field_name
は文字列値で、定数または式です。GET_IGNORE_CASE は
object
を使用した場合と同様に機能しますが、さらにv
にオブジェクト値が含まれていることを確認します(v
にオブジェクトが含まれていない場合は NULL を返します)。
例¶
オブジェクトからフィールド値を抽出します。この関数は、完全一致の値を返します。
SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3, "AA":4}')),'aA') as output;
+--------+
| OUTPUT |
|--------|
| 2 |
+--------+
オブジェクトからフィールド値を抽出します。関数は完全一致を見つけることができないため、あいまいな一致の1つを返します。
SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3}')),'AA') as output;
+--------+
| OUTPUT |
|--------|
| 3 |
+--------+
より詳細な例については、 半構造化データのクエリ をご参照ください。