PostgreSQL和SQL Server不同的语句写法

日期和数字类型的模糊查询

sql server :  select * from table where modifytime like '%2022%'

与sql server不同,pgSql需要先把日期格式转化为char

select * from table where  ( to_char(modifytime, 'yyyy-mm-dd hh:mi:ss') like '%2022%') 

--数字类型 
select * from [表名] where cast([字段名] as char) like '%12%' 

select * from newploay where cast(number as char) like '%12%'


--时间类型
select * from [表名] where (TO_CHAR([字段名], 'yyyy-mm-dd hh:mm:ss') LIKE '%2023%') 

select * from newploay where (TO_CHAR(no3, 'yyyy-mm-dd hh:mm:ss') LIKE '%2023%') 

limit、offset

sqlserver使用top选择查询行数

pgsql用limit

offset:过滤纪录

从第5个开始查询(过滤4条),查询6条记录

select * from table offset 4 limit 6

limit和offset都可以单独使用,一般都是搭配order by 排序使用

distinct 去重

select distinct name from table

模式 

表的集合,将表组织成逻辑组,便于管理

创建模式

CREATE SCHEMA schema;

在模式中创建表

CREATE TABLE schema.table;

查看数据库下面所有的schema

select * from information_schema.schemata;

查看一个schema下面所有的表

select * from information_schema.tables where table_schema = ‘schema’;

PostgreSQL查询表名称及表结构

查询表名

SELECT tablename FROM pg_tables;

SELECT viewname FROM pg_views;

获取数据库中所有view名 视图

SELECT viewname FROM pg_views WHERE schemaname = 'public' ;

查询表结构
SELECT 
  A.attnum, 
  A.attname AS field, 
  T.typname AS TYPE, 
  A.attlen AS LENGTH, 
  A.atttypmod AS lengthvar, 
  A.attnotnull AS NOTNULL, 
  b.description AS COMMENT 
FROM 
  pg_class C, 
  pg_attribute A 
  LEFT OUTER JOIN pg_description b ON A.attrelid = b.objoid 
  AND A.attnum = b.objsubid, 
  pg_type T 
WHERE 
  C.relname = 'pg_class' 
  AND A.attnum > 0 
  AND A.attrelid = C.oid 
  AND A.atttypid = T.oid 
ORDER BY 
  A.attnum;

字符串拼接

sql : select 'qwe' + 'asd'    --结果: qweasd

pgsql: select 'qwe' || 'asd'  --结果: qweasd

sql : select '22' + 22   --结果: 44

pgsql: select '22' || 22  --结果: 2222

sql : select 'q22' + 22    --结果: 报错

pgsql: select 'q22' || 22  --结果: q2222

sql : select 22 + 22    --结果: 44

pgsql: select 22 || 22  --结果: 报错

pgsql: select 22 + 22  --结果: 44

由以上结果可知,sqlserver中,字符串拼接或者数字计算都用 “+” ,如果字符串和数字用+,字符串可以转换为数字类型就可以直接计算,如果不能转换就会报错。

pgsql中,只要拼接的一方是字符串类型的,使用"||"就可以拼接成功,不会计算,如果||两侧都是数字类型,使用||就会报错,要计算必须用+,|| 只用于拼接字符串,不做其他操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值