PostgreSQL的括号规则是否有总结指南?
在数学和许多编程语言中(我认为也是标准SQL),括号
change precedence(首先评估要评估的部分)或增强可读性(对于人眼).
等效例子: SELECT array[1,2] @> array[1] SELECT (array[1,2]) @> array[1] SELECT array[1,2] @> (array[1]) SELECT ((array[1,2]) @> (array[1])) 但是SELECT 1 = ANY数组[1,2]是语法错误(!),SELECT 1 = ANY(数组[1,2])是有效的.为什么? 好的,因为“the manual says so”.但人类记住所有异常的逻辑是什么? 我不明白为什么(表达式)在某些情况下与表达式相同,但在其他情况下则不然. PS1:括号也用作值列表分隔符,如表达式IN(value [,…]).但是数组不是值列表,并且当(数组表达式)与数组表达式不同时,PostgreSQL中似乎没有一般规则. 解决方法
“有一个总结指南吗?”,嗯……答案是否定的,所以:亲自动手!这个答案是一个Wiki,让我们写一下.
总结指南 让, > F()一个通常的功能. (例如ROUND) 使用这些元素的规则是在形式中 >规则:笔记. “纯粹的”数学表达 当Op,Op1,Op2是数学运算符(例如,– .*),而F()是数学函数(例如ROUND()). 标量表达式和“纯数组表达式”的规则: > A Op B =(A Op B):括号是可选的. 具有类似函数的运算符的表达式 操作符的规则为ALL,ANY,ROW,SOME等. > L(A)= L((A)):括号在参数中是可选的. ……更多规则?请帮忙编辑. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |