写死数据集
select '数据1' 列名1 ,'数据2' 列名2 ... from dual
进行数据库统计当group by 不能统计多条语句时,使用
select sum(decode(t.dbly,'181',1,0)) 限时督查 from CASE_JBDB t
with name as()
相当于把后面select的结果集赋予前面的值
with h as(select ....)
ORACLE中的(+)
就是连接譬如SELECT a., b. from a(+) = b就是一个右连接,等同于select a., b. from a right join b
SELECT a., b. from a = b(+)就是一个左连接,等同于select a., b. from a left join b
即" (+)"所在位置的另一侧为连接的方向,通常将全量集合与部分集合连接时,在部分集合的列后面带上(+),以达到没有匹配时,也要显示出一个null的效果
distinct 去重
SELECT DISTINCT 列名FROM 表名
limit
limit是mysql的语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录
selectKey
可以用来返回插入的值的主键,并存入类的值 resultClass 的值是返回主键的类型 keypropety的值是主键所在类的名称,值可以用select 语句查询出来,
<selectKey resultClass="String" keyProperty="caseId" >
SELECT 'XC'||lpad(AJ_XC_SEQUENCE.nextVal,8,'0') as caseId FROM DUAL
</selectKey>
序列 sequence
oracle 主键不能自增 使用序列来设置主键 序列在sequence文件夹右键新建生成
字符连接符 ||
条件限定
between and
select * from hr.employees where salary between 3000 and 5000
查询工资在3000到5000之间的
闭区间,即取得到3000
in
select * from hr.employees where salary in(3000,6000)
即薪水要么等于3000要么等于6000
like
like用于进行模糊查询
select * from hr.employees where first_name like '%a_'
名字里倒数第二个字母是a的员工
%表示任意匹配,有或者没有都可以
_表示有,并且只有一个
is null
select * from hr.employees where department_id is null
sql语言中属性列为空,只有“is null”这种表达方式。没有“=null”、=" "这几种表达方式
排序
通过order by进行排序
asc是正排序
desc是倒排序
取整
–1.取整(大)
select ceil(-1.001) value from dual ;
–2.取整(小)
select floor(-1.001) value from dual ;
–3.取整(截取)
select trunc(-1.002) value from dual ;
–4.取整(舍入)
select round(-1.001) value from dual;
CASE WHEN 及 SELECT CASE WHEN的用法
Case具有两种格式。简单Case函数和Case搜索函数。
简单Case函数
CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘2’ THEN ‘女’
ELSE ‘其他’ END
–Case搜索函数
CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘2’ THEN ‘女’
ELSE ‘其他’ END
种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
–比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE WHEN col_1 IN ( ‘a’, ‘b’) THEN ‘第一类’
WHEN col_1 IN (‘a’) THEN ‘第二类’
ELSE’其他’ END
group by 后使用 rollup子句总结
https://www.cnblogs.com/lxh1076/p/5697929.html
decode
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
wm_concat(column)函数实现字段合并
lpad()函数
lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string])
string 字符或者参数
n字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string可选参数,这个字符串是要粘贴到string的左边,若这个参数未写,lpad函数将会在string的左边粘贴空格。
lpad(‘tech’, 7); 将返回’ tech’
lpad(‘tech’, 2); 将返回’te’
lpad(‘tech’, 8, ‘0’); 将返回’0000tech’
lpad(‘tech on the net’, 15, ‘z’); 将返回’tech on the net’
lpad(‘tech on the net’, 16, ‘z’); 将返回’ztech on the net