小程序制作平台网站设计平台 互联网品牌制作专家
关于A5客户收购GoogleAdsense带有搜索账户的相关事宜更多

软文发布平台资讯中心

浅谈PostgreSQL和SQLServer的一些差异

浅谈PostgreSQL和SQLServer的一些差异

  项目招商找A5 快速获取精准代理名单

这篇文章主要介绍了浅谈PostgreSQL和SQLServer的一些差异,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

条件查询-模糊匹配

PostgreSQL和SQL Server的模糊匹配like是不一样的,PostgreSQL的like是区分大小写的,SQL Server不区分。

测试如下:

//构造数据SQLcreate table t_user (id integer PRIMARY KEY,name varchar(50) not null,code varchar(10));

insert into t_user values(1,'Zhangsan','77771');insert into t_user values(2,'Lisi',null);

将如下SQL分别在PostgreSQL和SQL Server中执行:

1select * from t_user where name like '%zhang%';

PostgreSQL结果:

SQL Server结果:

如果想让PostgreSQL的like也不区分大小写的话,可以使用ilike

1select * from t_user where name ilike '%zhang%';

或者使用lower或者upper都转换成小写或者大写再模糊匹配,这种方式的SQL两种数据库都兼容。

1

2select * from t_user where upper(name) like upper('%zhang%');select * from t_user where lower(name) like lower('%zhang%');

条件查询-弱类型匹配

PostgreSQL在做条件查询的时候是强类型校验的,但是SQL Server是弱类型。

将如下SQL分别在PostgreSQL和SQL Server中执行:

1select * from t_user where code = 77771;

code是一个varchar类型的数据。

PostgreSQL结果:

SQL Server结果:

条件查询-末尾空白

SQL Server的查询如果末尾有空白的话,SQL Server会忽略但是PostgreSQL不会。

将如下SQL分别在PostgreSQL和SQL Server中执行:

1select * from t_user where code = '77771 ';

PostgreSQL结果:

SQL Server结果:

SQL Server是能查出数据的,但是PostgreSQL查不出来。

order by

1.PostgreSQL和SQL Server的默认order by行为是不一致的。

2.order by的字段如果是null,PostgreSQL会将其放在前面,SQL Server则将其放在后面。

将如下SQL分别在PostgreSQL和SQL Server中执行:

1select * from t_user order by code desc;

PostgreSQL:

SQL Server:

可以看出,查出来的数据的顺序是不同的。

某些情况下如果要求数据顺序在两个数据库中要一致的话,可以在PostgreSQL的查询SQL中增加nulls last来让null数据滞后。

1select * from t_user order by code desc nulls last;

也可以使用case when来统一SQL:

1ORDER BY (case when xxx is null then '' else xxx end) DESC;

字符串拼接

SQL Server使用" + “号来拼接字符串,并且在2012版本之前不支持concat函数。

PostgreSQL使用” || "来拼接字符串,同时支持concat函数。

查询表是否存在

//SQL Serverselect count(name) from sys.tables where type='u' and name='t_user';

//PostgreSQLselect count(table_name) from information_schema.tables where table_name='t_user';

补充:SqlServer与Postgresql数据库字段类型对照表

如下所示:

sqlserver to postgresql type// "bigint", "bigint"// "binary", "bytea"// "bit", "boolean"// "char", "char"// "datetime", "timestamp" // "decimal", "numeric"// "float", "double precision"// "image", "bytea"// "int", "integer"// "money", "numeric(19,4)"// "nchar", "varchar"// "ntext", "text"// "numeric", "numeric"// "nvarchar", "varchar"// "real", "real"// "smalldatetime", "timestamp"// "smallint", "smallint"// "smallmoney", "numeric(10,4)"// "text", "text"// "timestamp", "bigint"// "tinyint", "smallint"// "uniqueidentifier", "uniqueidentifier"// "varbinary", "bytea"// "varchar", "varchar"

文章来源:脚本之家

来源地址:https://www.jb51.net/article/204226.htm

尊敬的看官您对浅谈PostgreSQL和SQLServer的一些差异有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。

上一篇: nofollow属性作用的变化,同时Google也更新了处理方式   返 回   下一篇:Postgresql存储过程(plpgsql)两层f�ϣ�循环的操作

相关资讯

小程序应用场景 | 小程序解决方案 | 小程序案例 | 小程序应功能 | 软文发布资源 | 网站设计

酒店预约解决方案
酒店预约小程序走红网络,也是传统转型的重要变化
详情
投票解决方案
强大功能,傻瓜式管理,有效防止作弊刷票
详情
新零售解决方案
小程序是现在新零售的新方式,深度结合线上线下
详情
预约服务解决方案
预约到店小程序通过用户在线预约到店等
详情
企业官网解决方案
企业展示小程序主要展示企业信息、产品案例等
详情
教育培训解决方案
主要展示教育机构的课程、可在线预约与购买课程
详情
推广解决方案
可以让企业通过推广模式全面展示自己的产品
详情
到店解决方案
到店服务解决方案,主要是面向实体餐饮门店
详情

我们的服务是否能满足您的需求?

如果不能,请联系我们或给我们留言,我们收到后会第一时间联系您!感谢您对我们的关注!

粤公网安备 44200002005005号