substr函数在oracle、mysql、postgresql数据库中使用区别

项目背景

去O路上,遇到的函数使用问题

substr使用区别

oracle substr

select substr(‘aaaa’,0,4)

mysql substr

select substr(‘aaaa’,0,4)

postgresql substr

select substr(‘aaaa’,0,4)

请问在两个数据库中,上述两个函数的执行结果是一样的吗?

测试结果

oracle

mysql

mysql> select substr(‘aaaaa’,0,4);
±--------------------+
| substr(‘aaaaa’,0,4) |
±--------------------+
| |
±--------------------+
1 row in set (0.00 sec)

扫描二维码关注公众号,回复: 11887202 查看本文章

mysql> select substr(‘aaaaa’,1,4);
±--------------------+
| substr(‘aaaaa’,1,4) |
±--------------------+
| aaaa |
±--------------------+
1 row in set (0.00 sec)

postgresql
postgres=# select substr(‘aaaaa’,0,4);
aaa
postgres=# select substr(‘aaaaa’,1,4);
aaaa
postgres=# select substr(‘aaaaa’,4);
aa

总结

1、oracle中substr函数的语法兼容性更好
2、mysql中substr函数截取是从1开始才有值
3、postgresql substr函数默认从0开始截取

猜你喜欢

转载自blog.csdn.net/weixin_41561946/article/details/107192479