1、decode的用法:
decode(条件,值1,返回值1,值2,返回值2,值n……,返回值n,缺省值)
例如:
select decode(b.id,2,'齐天大圣',3,'哈哈',null) from test2 b ;
2、replace的用法:
replace(‘abcd’,‘bc’,‘哈哈’)
例如:
select replace(t.name,'齐天','hahh')||'哇' "替换后" from TEST2 t where id=1;
3、concat的用法:
concat是拼接函数,与||的用法有点类似,但是两者有不同的地方,“||”可以自定义连接的字符,而concat不行
例如:
select concat(c.name ,c.age) from test2 c;
select concat(c.name ,c.age)||'hah' from test2 c;
4、top的用法:
并非所有的数据库都支持top函数
sql server:
select top number|percent 列名 from 表名;
SELECT TOP 2 * FROM Persons;
SELECT TOP 50 PERCENT * FROM Persons;
Oracle的用法:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number
--例如:
SELECT *
FROM Persons
WHERE ROWNUM <= 5
MySQL的用法:
SELECT column_name(s)
FROM table_name
LIMIT number
--例如:
SELECT *
FROM Persons
LIMIT 5
5、nvl函数的用法:
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
SQL> select ename,NVL(comm, -1) from emp;
6、nvl2函数的用法:
NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值
SQL> select ename,NVL2(comm,-1,1) from emp;
7、round函数的使用:
负数表示从整数位(小数点的左边->左边👈)开始四舍五入;
正数表示保留几位小数(小数点的右边->右边👉);
0表示四舍五入到最接近原来数值的数(如:25.36——25,25.56——26)
8、substr:
select substr('abcd',1,3) -- 结果是abc
9、CONCAT_WS(separator,str1,str2,…)
是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
select concat_ws(',','11','22','33'); 11,22,33
10、trunc()函数
1.TRUNC()函数处理日期
语法格式:TRUNC(date[,fmt])
其中:date 一个日期值;fmt 日期格式。
示例:
select trunc(sysdate) from dual;–2021/9/22,返回当前时间
select trunc(sysdate,‘yy’) from dual;–2021/1/1,返回当年第一天
select trunc(sysdate,‘mm’) from dual;–2021/9/1,返回当月的第一天
select trunc(sysdate,‘d’) from dual;–2021/9/19,返回当前星期的第一天,即星期天
select trunc(sysdate,‘dd’) from dual;–2021/9/22,返回当前日期,今天是2021/9/22
select trunc(sysdate ,‘HH24’) from dual;–2021/9/22 14:00:00,返回本小时的开始时间
select trunc(sysdate ,‘MI’) from dual;–2021/9/22 14:54:00,返回本分钟的开始时间
2.TRUNC()函数处理number型数字
语法格式:TRUNC(number[,decimals])
其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。
注意:截取时并不对数据进行四舍五入。
示例:
select trunc(123.567,2) from dual;--123.56,将小数点右边指定位数后面的截去;
select trunc(123.567,-2) from dual;--100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;
select trunc(123.567) from dual;--123,默认截去小数点后面的部分;