双问号(??
)在sql或sql查询中是什么意思.(postgres sql).
我的数据库服务器是Postgres,我使用的列类型是jsonb。
我看到一个包含??
的查询。
select rr.jdoc
from table_with_jsonb rr
where not (rr.jdoc ?? 'pivot')
and ((rr.jdoc->'mapping'->>'objectType')<>'meta');
有人能解释一下??
的意思吗?任何参考资料都会有很大的帮助。
通常我的理解是-?
允许参数化查询。
但是这个表9.4 ref -〉FUNCTIONS-JSONB-OP-TABLE或13.x ref -〉FUNCTIONS-JSONB-OP-TABLE为?
添加了更多的使用场景,但是仍然没有说明??
是什么。
PS:请忽略9.4的文档引用。我目前使用的是13.x。
1条答案
按热度按时间xwbd5t1u1#
当通过JDBC使用时,它与
?
operator相同。JDBC使用
?
作为参数占位符,因此需要有一种方法来区分操作符和参数占位符,所以Postgres JDBC驱动程序允许在PreparedStatement中使用??
来转义?
操作符。我不知道其他技术(ODBC、.Net)是否也使用类似的机制。