concat 连接 select
concat(deptcode,'doris') from dept;
<1>显示dname和loc中间用-分隔
select deptno,dname||'----'||loc from dept;
dual哑元表
没有表需要查询的时候 可以用它
select 'Hello World' from dual;
select 1+1 from dual;
查询系统时间
select sysdate from dual;
<2> initcap 首字母大写
select ename,initcap(ename) from emp;
<3> lower
转换为小写字符
select ename,lower(ename) from emp;
<4> upper 转换为大写
update dept set loc=lower(loc);
update dept set loc=upper(loc);
<5> LPAD 左填充
select deptno,lpad(dname,10,' '),loc from dept;
<6> RPAD 右填充
<7> LTRIM 去除左边的空格
RTRIM 去除右边的空格
ALLTRIM
去除两边的空格
<8>replace
替换
translate
转换
select ename,replace(ename,'S','s') from emp;
用's'去替换ename中的'S'
select ename,translate(ename,'S','a') from emp;
例:
select lower(deptname),upper(deptname),initcap(deptname) from
dept;
select replace(deptname,'e','E')from
dept;将e变为E;
关于translate
select translate('SMITH 20','0123456789','##########') from
dual
將
'SMITH 20' 字符串中,所有數字替換為 ‘#’
結果是 'SMITH ##'
select replace(translate('SMITH
20','0123456789','##########'),'#','') from dual
將 'SMITH
##'中 的'#'替換為 ''
結果是
'SMITH'
<9>
ASCII 求ASC码
chr
asc码变字符
select ascii('A') from dual;
select chr(97) from dual;
select 'Hello'||chr(9)||'World' from dual;
'\t' ascii码是 9
'\n' ascii码是 10
select 'Hello'||'\t'||'World' from dual;
<10> substr 字符截取函数
select ename,substr(ename,1,3) from emp;
从第1个位置开始 显示3个字符
select ename,substr(ename,4) from emp;
从第4个位置开始显示后面所有的字符
<11> instr 测试字符串出现的位置
select ename,instr(ename,'S') from emp;
'S'第1次出现的位置
select
ename,instr(ename,'T',1,2) from emp;
从第1个位置开始 测试'T'第2次出现的位置
<12> length 字符串的长度
select ename,length(ename) from emp;
时间的插入(Oracle11G中都可以
月份用MON有错不对要用MM)
insert into user_a values(to_date('2009-10-12','yyyy-MM-dd'));
insert into user_a
values(to_date('2009-04-16','YYYY-MM-DD'));
insert into user_a
values(to_date('2009-04-16','yyyy-mm-dd'));
随机数的产生:
MySQL:order
by rand()
Oracle:order by dbms_random.value()
Sqlserver:order by newid()