导航

常用SQL语句1(Oracle)

Posted on 2015-04-14 17:26  勤奋积累  阅读(179)  评论(0)    收藏  举报

常用Sql语句:

  1 SELECT * FROM HR.EMPLOYEES;
  2 DESC HR.EMPLOYEES;
  3 SELECT LAST_NAME, SALARY*12 FROM HR.EMPLOYEES;
  4 SELECT LAST_NAME, SALARY*12 annual_sal FROM HR.EMPLOYEES;
  5 SELECT LAST_NAME, SALARY*12 "annual_sal" FROM HR.EMPLOYEES;
  6 SELECT DEPARTMENT_ID from HR.EMPLOYEES;
  7 SELECT DISTINCT DEPARTMENT_ID from HR.EMPLOYEES;
  8 SELECT DISTINCT DEPARTMENT_ID, JOB_ID from HR.EMPLOYEES;
  9 
 10 SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 10;
 11 SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID > 10;
 12 SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID <> 10;
 13 SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME = 'King';
 14 SELECT * FROM HR.EMPLOYEES WHERE LAST_NAME > 'King';
 15 SELECT LAST_NAME,SALARY FROM HR.EMPLOYEES WHERE LAST_NAME > 'King';  
 16 SELECT LAST_NAME,SALARY,DEPARTMENT_ID FROM HR.EMPLOYEES WHERE DEPARTMENT_ID > 50;
 17 SELECT LAST_NAME,SALARY FROM HR.EMPLOYEES WHERE SALARY BETWEEN 800 AND 3000; 
 18 SELECT LAST_NAME,SALARY FROM HR.EMPLOYEES WHERE SALARY >= 800 AND SALARY <= 3000;
 19 
 20 SELECT LAST_NAME,SALARY,COMMISSION_PCT FROM HR.EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL; 
 21 SELECT LAST_NAME,SALARY,COMMISSION_PCT FROM HR.EMPLOYEES WHERE COMMISSION_PCT IS NULL;
 22 
 23 SELECT LAST_NAME,SALARY,COMMISSION_PCT FROM HR.EMPLOYEES WHERE LAST_NAME IN ('King','De Haan', 'Chen');
 24 SELECT LAST_NAME,SALARY,COMMISSION_PCT FROM HR.EMPLOYEES WHERE LAST_NAME NOT IN ('King','De Haan', 'Chen');
 25 SELECT LAST_NAME,SALARY,COMMISSION_PCT FROM HR.EMPLOYEES WHERE SALARY IN (9000,2800,7900);
 26 
 27 SELECT LAST_NAME,SALARY,HIRE_DATE FROM HR.EMPLOYEES;
 28 SELECT LAST_NAME,SALARY,HIRE_DATE FROM HR.EMPLOYEES WHERE HIRE_DATE = '05-2月 -06';
 29 
 30 SELECT LAST_NAME,SALARY,HIRE_DATE,DEPARTMENT_ID FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 10 AND SALARY > 500;
 31 SELECT LAST_NAME,SALARY,HIRE_DATE,DEPARTMENT_ID FROM HR.EMPLOYEES WHERE DEPARTMENT_ID < 50 OR SALARY < 7500;
 32 SELECT LAST_NAME,SALARY,HIRE_DATE,DEPARTMENT_ID FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 10 AND SALARY NOT IN (500,7000);
 33 
 34 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '%in%';
 35 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '_in%';
 36 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE LAST_NAME LIKE '%in_%';
 37 
 38 SELECT LAST_NAME,DEPARTMENT_ID FROM HR.EMPLOYEES ORDER BY DEPARTMENT_ID DESC;
 39 SELECT LAST_NAME,DEPARTMENT_ID,SALARY FROM HR.EMPLOYEES ORDER BY DEPARTMENT_ID DESC, SALARY ASC;
 40 SELECT LAST_NAME,DEPARTMENT_ID,SALARY FROM HR.EMPLOYEES WHERE DEPARTMENT_ID < 50 ORDER BY DEPARTMENT_ID DESC, SALARY ASC;
 41 SELECT LAST_NAME,DEPARTMENT_ID,SALARY*12 ANNUAL_SAL FROM HR.EMPLOYEES WHERE DEPARTMENT_ID < 50 and LAST_NAME NOT LIKE '_o%' ORDER BY DEPARTMENT_ID DESC, SALARY ASC;
 42 
 43 SELECT LOWER(LAST_NAME) FROM HR.EMPLOYEES;
 44 SELECT UPPER(LAST_NAME) FROM HR.EMPLOYEES;
 45 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE lower(LAST_NAME) like '_a%'; 
 46 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE LAST_NAME like '_a%' OR LAST_NAME like '_A%';
 47 SELECT SUBSTR('ABCDEFG',3,4) SUBSTR FROM DUAL;
 48 SELECT CHR(67)||CHR(65) CHR FROM DUAL;
 49 SELECT ASCII('a') ASCI FROM DUAL;
 50 
 51 SELECT ROUND(15.193,1) ROUD FROM DUAL;
 52 SELECT ROUND(15.193,-1) ROUD FROM DUAL;
 53 
 54 SELECT TO_CHAR(SALARY, '$99,999.9999') SAL FROM HR.EMPLOYEES;
 55 SELECT TO_CHAR(SALARY, '$00,000.0000') SAL FROM HR.EMPLOYEES;
 56 
 57 SELECT TO_CHAR(SALARY, 'L99,999.9999') SAL FROM HR.EMPLOYEES;
 58 SELECT TO_CHAR(SALARY, 'L00,000.0000') SAL FROM HR.EMPLOYEES;
 59 
 60 SELECT HIRE_DATE FROM HR.EMPLOYEES;
 61 SELECT TO_CHAR(HIRE_DATE,'YYYY-MM-DD HH:MI:SS') HIREDATE FROM HR.EMPLOYEES;
 62 SELECT TO_CHAR(HIRE_DATE,'YYYY-MM-DD HH24:MI:SS') HIREDATE FROM HR.EMPLOYEES;
 63 SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH12:MI:SS') FROM DUAL;
 64 
 65 SELECT LAST_NAME, HIRE_DATE FROM HR.EMPLOYEES;
 66 SELECT LAST_NAME, HIRE_DATE FROM HR.EMPLOYEES WHERE HIRE_DATE > TO_DATE('2005-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');
 67 
 68 SELECT SALARY FROM HR.EMPLOYEES WHERE SALARY > 8888.88;
 69 SELECT SALARY FROM HR.EMPLOYEES WHERE SALARY > TO_NUMBER('$7,250.00', '$9,999.99');
 70 
 71 SELECT MAX(SALARY) MAXSAL FROM HR.EMPLOYEES;
 72 SELECT MIN(SALARY) MINSAL FROM HR.EMPLOYEES;
 73 SELECT TO_CHAR(AVG(SALARY),'99999999.99') AVGSAL FROM HR.EMPLOYEES;
 74 SELECT ROUND(AVG(SALARY),2) AVGSAL FROM HR.EMPLOYEES;
 75 SELECT SUM(SALARY) FROM HR.EMPLOYEES;
 76 SELECT COUNT(*) FROM HR.EMPLOYEES;
 77 SELECT COUNT(*) FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 50;
 78 SELECT COUNT(LAST_NAME) FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 50;
 79 SELECT COUNT(DISTINCT DEPARTMENT_ID) COUNTDISTINCTID FROM HR.EMPLOYEES;
 80 SELECT DISTINCT DEPARTMENT_ID FROM HR.EMPLOYEES;
 81 
 82 SELECT ROUND(AVG(SALARY),2) AS SALARY FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID;
 83 SELECT ROUND(AVG(SALARY),2) AS SALARY,DEPARTMENT_ID  FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID;
 84 
 85 SELECT DEPARTMENT_ID,JOB_ID, MAX(SALARY) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID,JOB_ID;
 86 SELECT LAST_NAME FROM HR.EMPLOYEES WHERE SALARY = (SELECT MAX(SALARY) FROM HR.EMPLOYEES);
 87 SELECT DEPARTMENT_ID, MAX(SALARY) FROM HR.EMPLOYEES GROUP BY DEPARTMENT_ID;
 88 
 89 SELECT MIN(SALARY) FROM HR.EMPLOYEES GROUP BY EMPLOYEE_ID;
 90 
 91 create or replace procedure P_DTMS_REP_WHITEBOXMEMBERS(v_startDate in date, v_endDate in date, v_scope in varchar2, v_cur out sys_refcursor)
 92 is
 93   v_startDate1 timestamp := to_timestamp('2015-01-01 00:00:00.000','YYYY-MM-DD HH24:MI:SS.ff9');
 94   v_endDate1 timestamp := to_timestamp('2015-01-02 23:59:59.999','YYYY-MM-DD HH24:MI:SS.ff9');
 95   v_date_condition varchar2(500) := ' between ' || 'to_timestamp(''' || to_char(v_startDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')' || ' and ' || 'to_timestamp(''' || to_char(v_endDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')';
 96   v_totalgroup number;
 97   v_sql long;
 98   v_fixedUsers varchar2(1000) := '(''developManager2'', ''developManager1'')';
 99 begin
100   for rc in (select labelgroup.id as groupid, labelgroup.name as groupname from dtms_issuelabelgroup labelgroup where labelgroup.scope = 'WHITEBOX') loop
101     v_sql := v_sql || ' (
102     select count(labelvalueTmp.value) from dtms_issuelabelvalue labelvalueTmp left join 
103     dtms_issuelabel labelTmp on labelvalueTmp.issuelabelid = labelTmp.id left join 
104     dtms_issue issueTmp on labelvalueTmp.issueid = issueTmp.id where labelTmp.groupid = ' || rc.groupid ||
105     ' and issueTmp.fixeduser = issue.fixeduser and issueTmp.createTime ' || v_date_condition || ') as ' || rc.groupname || ',';
106   end loop;
107   
108   --dbms_output.put_line(substr(v_sql, 1, length(v_sql) - 1));
109   open v_cur for 'select issue.fixeduser as fixeduser, ' || substr(v_sql, 1, length(v_sql) - 1) || 
110   ' from dtms_issue issue' ||
111   ' where issue.fixeduser in ' || v_fixedUsers ||
112   ' group by issue.fixeduser';
113 end;
114 
115 
116 create or replace procedure P_DTMS_REP_WHITEBOXMEMBERS(v_startDate in TIMESTAMP, v_endDate in TIMESTAMP, v_scope in varchar2, v_members in varchar2, v_cur out sys_refcursor)
117 is
118   v_startDate1 timestamp := to_timestamp('2015-01-01 00:00:00.000','YYYY-MM-DD HH24:MI:SS.ff9');
119   v_endDate1 timestamp := to_timestamp('2015-01-15 23:59:59.999','YYYY-MM-DD HH24:MI:SS.ff9');
120   v_fixedusers varchar2(1000) := '''developManager2'', ''developManager1''';
121   
122   v_date_condition varchar2(500) := ' between ' || 'to_timestamp(''' || to_char(v_startDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')' || ' and ' || 'to_timestamp(''' || to_char(v_endDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')';
123   --v_date_condition varchar2(500) := ' between ' || 'to_timestamp(''' || to_char(v_startDate, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')' || ' and ' || 'to_timestamp(''' || to_char(v_endDate, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')';
124   v_sql long;
125 
126 begin
127   for rc in (select labelgroup.id as groupid, labelgroup.name as groupname from dtms_issuelabelgroup labelgroup where labelgroup.scope = 'WHITEBOX') loop
128     v_sql := v_sql || ' (
129     select count(labelvalueTmp.value) from dtms_issuelabelvalue labelvalueTmp left join 
130     dtms_issuelabel labelTmp on labelvalueTmp.issuelabelid = labelTmp.id left join 
131     dtms_issue issueTmp on labelvalueTmp.issueid = issueTmp.id where labelTmp.groupid = ' || rc.groupid ||
132     ' and issueTmp.fixeduser = issue.fixeduser and issueTmp.createTime ' || v_date_condition || ') as ' || rc.groupname || ',';
133   end loop;
134   
135   --dbms_output.put_line(substr(v_sql, 1, length(v_sql) - 1));
136   open v_cur for 'select issue.fixeduser as fixeduser, ' || substr(v_sql, 1, length(v_sql) - 1) || 
137   ' from dtms_issue issue' ||
138   ' where issue.fixeduser in (' || v_fixedusers ||
139   --' where issue.fixeduser in (' || v_members ||
140   ') group by issue.fixeduser';
141 end;
142 
143 create or replace procedure P_DTMS_REP_WHITEBOXMEMBERS(v_startDate in date, v_endDate in date, v_scope in varchar2, v_cur out sys_refcursor)
144 is
145   v_startDate1 timestamp := to_timestamp('2015-01-01 00:00:00.000','YYYY-MM-DD HH24:MI:SS.ff9');
146   v_endDate1 timestamp := to_timestamp('2015-01-15 23:59:59.999','YYYY-MM-DD HH24:MI:SS.ff9');
147   v_date_condition varchar2(500) := ' between ' || 'to_timestamp(''' || to_char(v_startDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')' || ' and ' || 'to_timestamp(''' || to_char(v_endDate1, 'yyyy-mm-dd hh24:mi:ss.ff9') || ''', ''yyyy-mm-dd hh24:mi:ss.ff9'')';
148 --  v_totalgroup number;
149   v_sql long;
150   v_fixedusers varchar2(1000) := '(''developManager2'', ''developManager1'')';
151 begin
152   for rc in (select labelgroup.id as groupid, labelgroup.name as groupname from dtms_issuelabelgroup labelgroup where labelgroup.scope = 'WHITEBOX') loop
153     v_sql := v_sql || ' (
154     select count(labelvalueTmp.value) from dtms_issuelabelvalue labelvalueTmp left join 
155     dtms_issuelabel labelTmp on labelvalueTmp.issuelabelid = labelTmp.id left join 
156     dtms_issue issueTmp on labelvalueTmp.issueid = issueTmp.id where labelTmp.groupid = ' || rc.groupid ||
157     ' and issueTmp.fixeduser = issue.fixeduser and issueTmp.createTime ' || v_date_condition || ') as ' || rc.groupname || ',';
158   end loop;
159   
160   --dbms_output.put_line(substr(v_sql, 1, length(v_sql) - 1));
161   open v_cur for 'select issue.fixeduser as fixeduser, ' || substr(v_sql, 1, length(v_sql) - 1) || 
162   ' from dtms_issue issue' ||
163   ' where issue.fixeduser in ' || v_fixedusers ||
164   ' group by issue.fixeduser';
165 end;