有人知道在where子句中! =
之间有空格是什么意思吗?
例如:
Select ColA
From TableA
Where ColA.ID ! = ColB.ID ?
在Postgres中并不是完全'不平等'的运营商,我在互联网上找不到对它的引用。
答案 0 :(得分:2)
!
感叹号是阶乘的运算符。所以表达式
ColA.ID ! = ColB.ID
评估为
(ColA.ID!) = ColB.ID
表示:“其中ColA.ID的阶乘等于ColB.ID的值”
然而,我怀疑某人实际上打算写ColA.ID != ColB.ID
这是“不等于”运算符的可接受但非标准版本,并且相当于ColA.ID <> ColB.ID
符号ColA.ID
建议(正如康斯坦丁在他的回答中提到的)这两列基于用户定义的类型,这些类型具有自己的属性(除非您在尝试混淆真实时只是犯了一个错误查询)
答案 1 :(得分:0)
看起来ColA和ColB属于user defined type。在Postgres中,您可以定义复合数据类型,其中一个值包含多个字段。因此,在您的示例中,ColA.ID
只是存储在表ID
的列ColA
中的值的TableA
字段。
有一些示例article供您进一步帮助。
P.S。我认为! =
只是一个印刷错误。它应该不是等于运算符