zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【PostgreSql】——- Sqlserver与postgreSQL 区别差异

2023-02-26 10:19:12 时间
  1.sqlserver----sql语句:      select * from  DCS_RISK where 1=1  and  SUPERINTENDENT_DPT_ID IN (select ID FROM ORG_DEPARTMENT WHERE CODEPATH LIKE'03.03.%') AND STATUS_NAME ='已确认' AND ISNULL(IS_CLOSED,0)=0 ORDER BY  FIND_TIME DESC  offset 0 rows fetch next 15 rows only   postgresql-----sql语句:      select * from  "DCS_RISK" where 1=1  and  "SUPERINTENDENT_DPT_ID" IN (select "ID" FROM "ORG_DEPARTMENT" WHERE "CODEPATH" LIKE'03.02.%') AND "STATUS_NAME" ='已确认' and ("IS_CLOSED" IS NULL OR "IS_CLOSED"=0)  ORDER BY  "FIND_TIME" DESC  offset 0 rows fetch next 15 rows only   区别: 1.1 postgresql表名与字段名要用双引号 否则将会变成小写字符.   解决办法: 表名 SQLSERVER-> DCS_RISK == POSTGRESQL->”DCS_RISK”; 字段名 SQLSERVER-> STATUS_NAME == POSTGRESQL->”STATUS_NAME”   备注:(sqlserver 表中 表名与字段名上添加“双引号”不会报错 并且没有“字符大小写”控制)。   1.2 Sqlserver中ISNULL函数在postgresql 中是不能使用的!      解决办法:ISNULL(IS_CLOSED,0)=0 == ("IS_CLOSED" IS NULL OR "IS_CLOSED"=0)   1.3 Sqlserver 中 字符类型是数值型 按 空字符串 查询 可以使用 在 postgresql中 字符类型是数值型是不可使用的!      例如: DCS_RISK表中的 IS_CLOSED 它是int 类型   使用 IS_CLOSED=”” 作为条件会报错!   ------------------------------------------------END-----------------------------------------         4.PostgreSQL和SQL Server的模糊匹配like是不一样的,PostgreSQL的like是区分大小写的,SQL Server不区分。如果想让PostgreSQL的like也不区分大小写的话,可以使用ilike。或者使用lower或者upper都转换成小写或者大写再模糊匹配,这种方式的SQL两种数据库都兼容。 select * from t_user where name ilike '%zhang%'; select * from t_user where upper(name) like upper('%zhang%'); select * from t_user where lower(name) like lower('%zhang%');   5.PostgreSQL在做条件查询的时候是强类型校验的,但是SQL Server是弱类型。也就是说 用数值类型值 查询字符类型值 是报错的 需要用 单引号包起来呀  反之 用字符串数值 查询 数组类型值 是不报错的 select * from t_user where code = 77771; // code 是字符类型 77771 是数据值型 执行就会报错 所以要用 ‘77771’ 单引号包起来 查询   6.SQL Server的查询如果末尾有空白的话,SQL Server会忽略但是PostgreSQL不会。   7.PostgreSQL和SQL Server的默认order by行为是不一致的。order by的字段如果是null,PostgreSQL会将其放在前面,SQLServer则将其放在后面。   8.SQL Server使用" + “号来拼接字符串,并且在2012版本之前不支持concat函数。PostgreSQL使用” || "来拼接字符串,同时支持concat函数。

【PostgreSql】------- Sqlserver与postgreSQL 区别差异


本站部分内容转载自网络,版权属于原作者所有,如有异议请联系QQ153890879修改或删除,谢谢!
转载请注明原文链接:【PostgreSql】——- Sqlserver与postgreSQL 区别差异

你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:

1、点击这里立即申请成为腾讯云VIP客户

2、点击这里立即注册成为天翼云VIP客户

3、点击这里立即申请成为华为云VIP客户

4、点击这里立享阿里云产品终身VIP优惠价

喜欢 (0)
[[email protected]]
分享 (0)