英文:
PostgreSQL SQL Syntax
问题
@
符号在这里是用来表示一个操作符的一部分,用于比较 alias_1.value
和 alias_2.value
。它是必需的,因为它表示 "is contained by",用于检查一个值是否包含在另一个值内部。在这个上下文中,它用于比较两个列的值。
英文:
I have a where clause that looks like this (I didn't write this, it is old code from someone who is no longer here).
where alias_1.value <@ alias_2.value
What does the @
sign do? Is it really needed? Alias_2.value
is NOT a parameter, but a column from a subquery.
答案1
得分: 3
以下是翻译好的部分:
这可能是一个数组运算符
任意数组 <@ 任意数组 → 布尔值
第一个数组是否包含在第二个数组中?
ARRAY[2,2,7] <@ ARRAY[1,7,4,2,6] → t
或者可能是一个范围运算符
<@ 范围包含于
int4range(2,4) <@ int4range(1,7) → t
<@ 元素包含于
42 <@ int4range(1,7) → f
或者也可以是一个 JSON 运算符
jsonb <@ jsonb → 布尔值
第一个 JSON 值是否包含在第二个中?
'{"b":2}'::jsonb <@ '{"a":1, "b":2}'::jsonb → t
英文:
It could be an array operator
anyarray <@ anyarray → boolean
Is the first array contained by the second?
ARRAY[2,2,7] <@ ARRAY[1,7,4,2,6] → t
Official docs for array operators and functions
Or could be a range operator
<@ range is contained by
int4range(2,4) <@ int4range(1,7) → t
<@ element is contained by
42 <@ int4range(1,7) → f
Docs for range operators and functions
Or also could be a JSON operator
jsonb <@ jsonb → boolean
Is the first JSON value contained in the second?
'{"b":2}'::jsonb <@ '{"a":1, "b":2}'::jsonb → t
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论