sql中常用关键字和函数的总结
关键字
distinct:去掉重复的关键字
select distinct 列名 from 表名
-- order by :排序
-- desc 降序(默认升序)
-- asc 升序
select 列名 from 表名 order by 列名1 desc,列名2 asc
top :获取最上边几条的数据
--sql:
select top 5 列名 from 表名
--百分比+percent
select top 50 percent 列名 from 表名
--Mysql:
select 列明 from 表名 limit 5
--Oracle:
select 列名 from 表名 rownum <= 5
between:一般连接日期
select 列名 from 表名 where 列名 between 值1 and 值
as(alias):别名
select 列名 from 表名 as 新表名(一般用字母表示)
union:将查询的结果合并在一列中 要求:两个列名必须一致
select 列名 from 表名1
union
select 列名 from 表名2
select into:数据备份,将需要备份的数据添加到新的表格中
select 列名 into 备份到的表名 from 需要备份的表名
函数
count:获取指定列的值的数目(null不计算)
select count(列名) from 表名
聚合函数
--last:返回字段中最后一条记录
select last(列名) from table_name
--first:返回字段中第一条记录
select first(列名) from table_name
--max:返回一列中的最大值
select max(列名) from table_name
--min:返回一列中的最小值
select min(列名) from table_name
--avg:返回查询数据的平局值
select avg(列名) from table_name
--sum:返回查询数据的和
select sum(列名) from table_name
常用用函数
--len:返回文本字段值的长度
--now:获取当前日期和时间
--SQL用getdate()
--ucase:将字段的值转换为大写
--laces:将字段的值转换为小写
--round:用于把数值字段舍入为指定的小数位数
select round(列名,保留的小数位数) from table_name
--mid:用于从字段中提取字符
select mid(列名,start[,length]) from table_name
--注:
-- start:开始的位置,起始位1
-- length:返回的字符数
case:判断语句的函数
--语法:case 判断语句
case when 判断语句 then 结果 end
case ---------------假设
when column < 20 then 1-------------column小于20,则返回值1
when column >30 then 2 ------------column大于30,则返回值2
else 0 ------------除去小于20并且大于30的column,则返回值0
end ---------------结束
having: 字句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚合函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组
group by: 语句从英语的字面意思上理解就是“根据(by)一定的规则进行分组(group)。
他的作用是通过一定的规则将一个数据集划分为若干个小的区域,然后针对若干个小区域进行数据处理
group by是先排序后分组
NVL: nvl函数是一个空值转换函数
NVL(表达式1,表达式2):如果表达式1为空时,nvl返回值为表达式2的值,否则返回表达式1的值。该函数的目的是把一个空值(null)转换一个实际的值,其表达式的值可以是数字型,字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。
对数字型: NVL( comm,0);
对字符型 NVL( TO_CHAR(comm), ‘No Commission’)
对日期型 NVL(hiredate,’ 31-DEC-99’)
例子:
select ename,NVL(TO_char(comm), ename||' is not a salesperson!') AS COMMISSION from emp
nvl2(表达式1,表达式2,表达式3)
如果表达式1为空,返回值为表达式3的值,如果表达式1不为空,返回值为表达式2的值。
例如 NVL2(comm,‘sal+comm’,sal) ,NVL2函数测试comm
如果comm为空,就返回sal 的值。如果 comm 不为空(null),就返回表达式 sal+comm的值。
NULLIF
NULLIF:如果两个指定的表达式相等,则返回空值
语法:NULLIF ( expression , expression )
参数: expression 常量,列名,函数,子查询或算术运算,按位运算以及字符串运算的任意组合。
返回值类型:返回类型与第一个expression相同。
如果两个表达式不相等,nullif返回第一个expression的值,如果相等,nullif返回第一个expression的空值。
isnull
语法 :isnull(value1,value2)
value1与value2的数据类型必须一致
如果value1的值不为null,结果返回value1
如果value1为null,结果返回value2的值,value2是设定的值