【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函数。
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- 六个好用的在线代码编辑器,你选哪个?
- 读完 RocketMQ 源码,我学会了如何优雅的创建线程
- 依葫芦画瓢理解一个小型Go框架
- 利用多线程和 C++ 实现一个简单的 HTTP 服务器
- Linux登录时自动显示CPU硬盘内存使用信息(彩色进度条)
- 九款好用到爆的 JSON 处理工具,极大提高效率!
- 躲不过设计模式的坑之代理模式
- 聊聊分布式中灰度方案实践
- LLVM 工具系列 - Address Sanitizer 基本原理介绍及案例分析(1)
- C++ Postfix Completion VSCode 插件
- 主路由和二级路由设置同一局域网
- umi4 多环境配置改变
- C 语言实现冒泡排序 BubbleSort
- Windows 下安装共享文件夹(一步一步带你创建,亲测有效果)
- 真正“搞”懂HTTP协议07之body的玩法(实践篇)
- Tiktok下载及注册教程
- 信息安全技术 云计算服务安全指南
- 红中私教:使用wamp64配置靶场
- Vue3 开发拒绝 CV, 快使用 CRUD
- MyBatis:多对一和一对多