- 浏览: 39593 次
- 性别:
- 来自: 北京
最新评论
文章列表
package com.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBConnection {
// 连接Oracle数据库
public void OracleConnection() {
Connection con = null;
PreparedStatement pre = null;
ResultSet r ...
方法一
SQL> WITH SHOPPING AS
2 (
3 SELECT '1' U_ID, '苹果' GOODS, '2' QTY FROM DUAL UNION ALL
4 SELECT '2' U_ID, '梨子' GOODS, '5' QTY FROM DUAL UNION ALL
5 SELECT '1' U_ID, '西瓜' GOODS, '4' QTY FROM DUAL UNION ALL
6 SELECT '3' U_ID, '葡萄' GOODS, '1' QTY FROM DUAL UNI ...
SQL> SELECT HIREDATE
2 , TO_CHAR(HIREDATE, 'YYYY') 年
3 , TO_CHAR(HIREDATE, 'MM') 月
4 , TO_CHAR(HIREDATE, 'DD') 日
5 , TO_CHAR(HIREDATE, 'DY') 星期
6 , TO_CHAR(HIREDATE, 'IW') 年中第几周
7 , TO_CHAR(HIREDATE, 'W') 当月 ...
SQL> SELECT DEPTNO, SUBSTR(MAX(SYS_CONNECT_BY_PATH(ENAME, '/')), 2) PATH
2 FROM (
3 SELECT ENAME, DEPTNO, ROW_NUMBER() OVER (PARTITION BY DEPTNO ORDER BY EMPNO) RN
4 FROM EMP
5 )
6 START WITH RN = 1
7 CONNECT BY PRIOR RN = RN -1
8 AND ...
CREATE TABLE T1 (C1 NUMBER(1), C2 VARCHAR2(2));
INSERT INTO T1 VALUES (1, '01');
INSERT INTO T1 VALUES (2, '02');
INSERT INTO T1 VALUES (2, '03');
INSERT INTO T1 VALUES (3, '04');
INSERT INTO T1 VALUES (3, '04');
INSERT INTO T1 VALUES (3, '05');
INSERT INTO T1 VALUES (3, '06');
SQL> ...
SQL执行数序
SELECT -- 执行5
FROM -- 执行1
WHERE -- 执行2
GROUP BY -- 执行3
HAVING -- 执行4
ORDER BY -- 执行6
转载地址:http://database.51cto.com/art/200904/118526.htm
1.查询的模糊匹配
尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用.
解决办法:
其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:
a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。
b、直接修改后台——根据输入条件,先查出符合条件的供 ...
SELECT *
FROM SCOTT.EMP T1, SCOTT.EMP T2
WHERE T1.MGR = T2.EMPNO(+)
ORDER BY T2.EMPNO;
--显示上下级关系
SELECT EMPNO, ENAME, LEVEL, MGR
FROM SCOTT.EMP
START WITH MGR IS NULL
CONNECT BY PRIOR EMPNO = MGR;
--利用LPAD每一级添加4个空格
SELECT LPAD(' ', 4 * LEVEL - 4) || ENAME AS ENAME, LEVEL, EMPNO, MGR
FROM SCOTT.EMP
START WITH MGR IS NULL
CONNECT B ...
-- 每月入职人数统计
CASE WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
ELSE 结果N END AS ALIAS
-- 方法一
SELECT CASE WHEN TO_CHAR(HIREDATE, 'MM') = '01' THEN 1 END AS "1月"
, CASE WHEN TO_CHAR(HIREDATE, 'MM') = '02' THEN 1 END AS "2月"
...
-- 每月入职人数统计
DECODE(字段, 条件1, 结果值1
条件2, 结果值2, 默认值);
-- 方法一
SELECT DECODE(TO_CHAR(HIREDATE, 'MM'), '01', 1) AS "1月"
, DECODE(TO_CHAR(HIREDATE, 'MM'), '02', 1) AS "2月"
, DECODE(TO_CHAR(HIREDATE, 'MM'), '03', 1) AS &quo ...
--COALESCE用法
--COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
--1. 建立普通的表
WITH T_CUST AS
(
SELECT '张一' CUST_NM, '18610881234' PHONE_NUMBER1, '' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
UNION ALL
SELECT '张二' CU ...
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
打开工程下面的.project文件,注释或去掉下面内容。
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
保存然后重启Eclipse。
--日期 + 日期 相加
SELECT SYSDATE + 1 FROM DUAL;
--日期 + 时间 相加
SELECT SYSDATE + 1/24 FROM DUAL;
--日期 + 分 相加
SELECT SYSDATE + 1/(24 * 60) FROM DUAL;
--日期 + 秒 相加
SELECT SYSDATE + 1/(24 * 60 * 60) FROM DUAL;