SQL:DBMS函数的差异(限制输出结果、拼接字段)

限制输出结果

SQL Serve

select top 5 prod_name
from Products;

DB2

select prod_name
from Products
fetch first 5 rows only;

Oracle

select prod_name
from Products
where rownum <= 5;

MySQL、MariaDB、PostgreSQL、SQLite

select prod_name
from Products
limit 5;

延申:输出从第5行开始的4行数据

#方法一
select prod_name
from Products
limit 4 offset 5 ;

#方法二
select prod_name
from Products
limit 5,4

拼接字段

SQL Serve

#返回数据可能包含列宽
select vend_name + '(' + vend_country + ')'
from Vendors
order by vend_name;

#正确返回格式化数据,去掉多余空格
select rtrim(vend_name) + '(' + rtrim(vend_country) + ')'
from Vendors
order by vend_name;

DB2、Oracle、PostgreSQL、SQLite

select vend_name || '(' || vend_country || ')'
from Vendors
order by vend_name;

#正确返回格式化数据,去掉多余空格
select rtrim(vend_name) || '(' || rtrim(vend_country) || ')'
from Vendors
order by vend_name;

MySQL、MariaDB

select Concat(vend_name, ' (', vend_country, ')')
from Vendors
order by vend_name;

/*
拼接4个元素
	vend_name
	空格+左括号
	vend_country
	右括号
*/

延申:

常用的文本处理函数

函数说明
left()right()返回字符串左边/右边的字符
length()返回字符串的长度
lower()upper()将字符串转换成小写/大写
ltrim()rtrim()trim()去掉字符串左边/右边/两边的空格
substring()提取字符串的组成部分
soundex()返回字符串的soundex值(发音类似)

日期和时间处理函数

SQL Serve

#返回数据可能包含列宽
select order_num
from Orders
where datepart(yy,order_date) = 2020;

PostgreSQL

select order_num
from Orders
where date_part('year',order_date) = 2020;

Oracle

#方法一
select order_num
from Orders
where extract(year from order_date) = 2020;

#方法二
select order_num
from Orders
where order_date between to_date('2020-01-01','yyyy-mm-dd')
	and to_date('2020-12-31','yyyy-mm-dd');

DB2、MySQL、MariaDB

select order_num
from Orders
where year(order_date) = 2020;

SQLite

select order_num
from Orders
where strftime('%Y',order_date) = '2020';

DBMS函数的差异汇总

函数语法
提取字符串的组成部分DB2、Oracle、PostgreSQL、SQLite 使用substr()
MySQL、MariaDB、SQL Server 使用 substring()
数据类型转换Oracle 使用多个函数,每个类型转换对应一个函数
DB2、PostgreSQL使用cast()
MySQL、MariaDB、SQL Server 使用 convert()
提取当前日期DB2、PostgreSQL使用current_date()
MySQL、MariaDB使用curdate()
Oracle使用sysdate
SQL Server使用getdate()
SQLite 使用date()

未完待遇

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值