What does double question mark (??) mean in sql or sql query. (postgres sql).
My DB Server is Postgres and I am using columns that are of type jsonb.
I see a query that has ?? in it. Below is the query.
select rr.jdoc
from table_with_jsonb rr
where not (rr.jdoc ?? 'pivot')
and ((rr.jdoc->'mapping'->>'objectType')<>'meta');
Can some one explain what the ?? means and any references will be of great help.
Normally my understand is that - ? is to allow Parameterized Query.
But this table 9.4 ref -> FUNCTIONS-JSONB-OP-TABLE or 13.x ref -> FUNCTIONS-JSONB-OP-TABLE adds more usage scenerios for ?.
But still it does not say what ?? is.
PS: Plz ignore the doc references to 9.4. I am using 13.x currently.
CodePudding user response:
It's the same as the ? operator when used through JDBC.
JDBC uses ? for parameter placeholders and thus there needs to be a way to distinguish the operator from the parameter placeholder. So the Postgres JDBC driver allows to escape the ? operator using ?? in a PreparedStatement.
I don't know if other technologies (ODBC, .Net) are using a similar mechanism.
