oracle查询结果格式问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查询结果格式问题相关的知识,希望对你有一定的参考价值。
oracle查询
字段内容为 字段为 month 201306 varchar2(32)
我想查询出字段内容为2013年6月,如何实现
都不看可以,
我自己写出来了。
SELECT substr(c_month,0,4)||'年'||substr(c_month,5)||'月' as c_month from ktable
select to_char(sysdate,'yyyy年mm月') from dual;
你可以参考一下。 参考技术B 不好意思,写错了,按照我的思路 重新写一份吧:
select to_char(to_date(month,'yyyymm'),'yyyy')||'年'||ltrim(to_char(to_date(month,'yyyymm'),'mm'),'0')||'月' from tabxxx 参考技术C select * from month_table whre to_char(month,'yyyymm')='201306' 参考技术D 还是用 substr 比较简单!
Oracle Day04 子查询
1.子查询解决什么问题: 当一个简单的查询查询不到结果的时候,可以使用子查询来丰富查询的条件以达到显示结果的目的。
子查询的格式: 用一个小括号包含,然后在里面写sql语句
2.子查询的注意事项:
1).注意一定要有小括号。
2).一定要注意书写格式,不要混乱。
3). 子查询可以放在select,from ,where having后面。
4). 注意子查询一定不能放在group by的后面。
5). 子查询和主查询可以不是同一张表,只要子查询的结果在主查询中能用就可以。
6). 子查询中一般都不排序,但是在TOP-N中需要排序 。
7). 一般是先执行子查询操作,再执行主查询操作,但是在相关子查询中先执行主查询,再执行子查询。
8). 对于子查询的结果,如果是单行只能用单行操作符;如果是多行,只能用多行操作符。
9). 自查中的null处理。
3.例
1)-- 子查询放在select后面
select ename,job,(select sal from emp where empno=7566) 子查询 from emp;
注意:放在select后面的时候结果只能是单行的。
2)-- from后面放置子查询 重点掌握
-- 查询员工的姓名 工资 job
select * from (
select ename,job,sal from emp
);
3)-- where 后面跟子查询
select * from emp
where sal > (
select sal from emp where ename = (
select ename from emp where empno = 7566
)
);
注意: 子查询不能过多的去嵌套,一般嵌套三层,加多了会影响性能。
4)order by 后面不能跟子查询,语法上是可以跟的,但是跟了不起作用。
5)--子查询和主查询可以不是同一张表,只要子查询的结果在主查询中能用就可以
-- 查询部门名称为SAL的所有的员工信息
select *
from emp
where deptno=(
select deptno from dept where dname=‘SALES‘
);
6)--对于子查询的结果,如果是单行只能用单行操作符;如果是多行,只能用多行操作符。
单行操作符: ><= <= !=
-- 查询部门号不为30的员工信息
select * from (select * from emp where deptno != 30);
select * from (select * from emp where deptno <> 30);
-- <> 用来表示不等于
多行操作符 in, not in,any,all.
-- 查询和SCOTT用户和CLARK用户共同部门的所有员工
select * from emp
where deptno in(
select deptno from emp where ename=‘SCOTT‘ or ename=‘CLARK‘
);
以上是关于oracle查询结果格式问题的主要内容,如果未能解决你的问题,请参考以下文章