4

我找到了这样的代码:

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

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

4

1 回答 1

10

|||不是 PostgreSQL 附带的标准运算符;正如您在此处看到的,库存 8.4 中也不存在它。我会说有人CREATE OPERATOR在您的 8.4 安装中安装了它。

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

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

于 2012-12-14T13:25:07.080 回答