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

Rau*_*ets 4 string postgresql concatenation operator-keyword

我找到了这样的代码:

SELECT 'a' ||| 'b';
Run Code Online (Sandbox Code Playgroud)

我试图谷歌这个运算符的含义,但谷歌忽略了符号数据.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
Run Code Online (Sandbox Code Playgroud)

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

SELECT 'a' ||| 'b'; -- ERROR
SELECT 'a' || 'b'; -- 'ab'
SELECT 'a' || NULL; -- NULL
Run Code Online (Sandbox Code Playgroud)

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

Cra*_*ger 10

|||不是PostgreSQL附带的标准运算符; 正如你在这里看到的,它也不存在于股票8.4中.我会说有人CREATE OPERATOR在你的8.4安装中安装了它.

尝试在8.4 DB中使用psql命令\do(即"描述运算符"),或者执行a pg_dump并检查转储以获取运算符及其相关函数的定义.

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