The correct answers are A. SELECT column:key_1 FROM my_table; and C. SELECT column[ ' key_1 ' ] FROM my_table; .
Snowflake supports path notation for querying semi-structured data stored in columns such as VARIANT, OBJECT, and ARRAY. For a JSON object key, Snowflake supports colon path notation and bracket notation.
Why A is correct:
The colon path notation accesses a field inside a semi-structured column.
Example:
SELECT column:key_1
FROM my_table;
This extracts the value associated with the key key_1.
Why C is correct:
Bracket notation also accesses an object element by key.
Example:
SELECT column[ ' key_1 ' ]
FROM my_table;
This is especially useful when key names require quoting or contain special characters.
Why the other options are incorrect:
B. Dot notation is supported for nested traversal after the initial colon path, such as column:key_1.subkey, but column.key_1 by itself is interpreted as regular SQL object/column qualification, not as extracting a key from a semi-structured column.
D. Parentheses are not valid JSON object key extraction syntax in Snowflake.
E. Casting a column to string and aliasing it does not extract the value for the key key_1.
Official Snowflake documentation reference:
Snowflake documentation explains that elements in semi-structured data can be accessed using colon path notation and bracket notation. Dot notation may also be used for nested paths after the semi-structured column reference.
[Reference: Snowflake Documentation — Querying semi-structured data; Snowflake Documentation — Traversing semi-structured data; SnowPro Core Study Guide — Working with Semi-Structured Data., ========================]