PostgreSQL - 符号|||是什么做?

时间:2012-12-14 13:02:15

标签: string postgresql concatenation operator-keyword

我找到了这样的代码:

SELECT 'a' ||| 'b';

我试图谷歌这个运算符的含义,但谷歌忽略了符号数据。 SymbolHound没有返回任何有意义的结果。

我测试了一个PostgreSQL 8.4服务器和9.1服务器。

在PostgreSQL 8.4中,它与字符串连接相同,但有一点不同:

SELECT 'a' ||| 'b'; -- 'ab'
SELECT 'a' || 'b'; -- 'ab'

SELECT 'a' ||| NULL; -- 'a'
SELECT 'a' || NULL; -- NULL

在PostgreSQL 9.1中,未定义此运算符。

SELECT 'a' ||| 'b'; -- ERROR
SELECT 'a' || 'b'; -- 'ab'
SELECT 'a' || NULL; -- NULL

这是在某处正式记录的吗?这是特定于配置的吗?

1 个答案:

答案 0 :(得分:10)

|||不是PostgreSQL附带的标准运算符; as you can see here, it doesn't exist in stock 8.4 either。我说有人在你的8.4安装中用CREATE OPERATOR安装了它。

尝试在8.4 DB中使用psql命令\do(即“描述运算符”),或者执行pg_dump并检查转储以获取运算符及其关联的定义功能

select * from pg_operator where oprname = '|||';也可能有用。请注意oprcode列,其中显示了实现运算符的函数。