字符串函数和操作符兼容性

来自 PostgreSQL Wiki
跳转到导航跳转到搜索

各种数据库拥有各种标准和非标准的字符串函数和操作符,但它们通常在边缘情况下解释得不够充分。本页面展示了这些操作的兼容性。

函数

concat

功能 代码 PostgreSQL 9.1 MySQL Oracle DB2
非文本参数 concat('a', 123) a123 a123 a123 a123
NULL 参数 concat('a', NULL) a NULL a a
3+ 个参数 concat('a', 'b', 'c') abc abc (不支持) (不支持)

concat_ws

'ws' 代表 'with separator'(带分隔符)。

功能 代码 PostgreSQL 9.1 MySQL
非文本参数 concat_ws(',', 'a', 123) a,123 a,123
NULL 参数 concat_ws(',', 'a', NULL) a a
3+ 个参数 concat_ws(',', 'a', 'b', 'c') a,b,c a,b,c
NULL 分隔符 concat_ws(NULL, 'a', 'b') NULL NULL

left

功能 代码 PostgreSQL 9.1 MySQL SQL Server DB2
正长度 left('abcde', 2) ab ab ab ab
零长度 left('abcde', 0) (空) (空) (空) (空)
负长度 left('abcde', -2) abc (空) 错误 错误
  • PostgreSQL 中的负长度:left(str, -len) = left(str, length(str) - len)

right

功能 代码 PostgreSQL 9.1 MySQL SQL Server DB2
正长度 right('abcde', 2) de de de de
零长度 right('abcde', 0) (空) (空) (空) (空)
负长度 right('abcde', -2) cde (空) 错误 错误
  • PostgreSQL 中的负长度:right(str, -len) = right(str, length(str) - len)

reverse

功能 代码 PostgreSQL 9.1 MySQL SQL Server
多字节安全? reverse('...')

操作符

||

功能 代码 PostgreSQL Oracle DB2 SQL Server (+)
非文本参数 'a' || 123 a123 a123 a123 错误
NULL 参数 'a' || NULL NULL a NULL NULL
  • MySQL 不支持使用 || 操作符连接字符串。请改用 concat()。(在 MySQL 中 || 代表 OR。)
  • SQL Server 不支持使用 || 操作符连接字符串。请改用 +。,