摘要:最近开发个项目从SQL到postgresql,以备份一下......
PostgreSQL和SQLServer的一些差异如下:
1.条件查询-模糊匹配
PostgreSQL和SQL Server的模糊匹配like是不一样的,PostgreSQL的like是区分大小写的,SQL Server不区分。如果想让PostgreSQL的like也不区分大小写的话,可以使用ilike,或者使用lower或者upper都转换成小写或者大写再模糊匹配,这种方式的SQL两种数据库都兼容。
2.条件查询-弱类型匹配
PostgreSQL在做条件查询的时候是强类型校验的,但是SQL Server是弱类型。对数据类型要求比较严格
3.条件查询-末尾空白
SQL Server的查询如果末尾有空白的话,SQL Server会忽略但是PostgreSQL不会。比如:“001 ”SQL会直接忽略后面的空格
4.order by
PostgreSQL和SQL Server的默认order by行为是不一致的。order by的字段如果是null,PostgreSQL会将其放在前面,SQLServer则将其放在后面。查出来的数据的顺序是不同的。某些情况下如果要求数据顺序在两个数据库中要一致的话,可以在PostgreSQL的查询SQL中增加nulls last来让null数据滞后。
5.字符串拼接
SQL Server使用" + “号来拼接字符串,并且在2012版本之前不支持concat函数。
PostgreSQL使用” || "来拼接字符串,同时支持concat函数。
6.查询表是否存在
//SQL
select count(name) from sys.tables where type='u' and name='t_user';
//PostgreSQL
select count(table_name) from information_schema.tables where table_name='t_user';
————————————————
版权声明:本文为CSDN博主「qsword555」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Qsword555/article/details/84876184