Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
17Activity
0 of .
Results for:
No results containing your search query
P. 1
Oracle_Corp

Oracle_Corp

Ratings:

4.0

(2)
|Views: 722|Likes:
Published by api-3707774

More info:

Published by: api-3707774 on Oct 16, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/09/2014

pdf

text

original

 
COMPLEX QUERIES
- 1 -
1.To find The Nth Maximum Salary.
SELECT DISTINCT SAL FROM EMP A WHERE &N=(SELECT COUNT (DISTINCT B.SAL)FROM EMP B WHERE A.SAL<=B.SAL);
2.To find the no. of columns for particular table.
SELECT COUNT (COLUMN_NAME) FROM USER_TAB_COLUMNSWHERE TABLE_NAME = 'DEPT'
3.To use Exists Clause.
SELECT DNAME, DEPTNO FROM DEPT WHERE EXISTS (SELECT * FROM EMP WHEREDEPT.DEPTNO = EMP.DEPTNO)
4. To Find The Not Null Column Alone In A Table.
SELECT COLUMN_NAME FROMUSER_TAB_COLUMNS WHERE NULLABLE = 'N' AND TABLE_NAME = 'COUNTRY'
5.To delete The Duplicate Rows Alone in A Table.
DELETE DEPT WHERE ROWID NOT IN (SELECT MAX (ROWID) FROM DEPT GROUP BYDEPTNO HAVING COUNT (*) >=1)
6.To find The Max Salary without MAX Function.
1. SELECT DISTINCT SAL FROM EMP1 WHERE SAL NOT IN(SELECT SAL FROM EMP1 WHERE SAL < ANY (SELECT SAL FROM EMP1))2.SELECT SAL FROM EMP WHERE SAL >= ALL (SELECT SAL FROM EMP)
7. Alternate for DESC.
SELECT COLUMN_NAME NAME, DECODE (NULLABLE,'N','NOT NULL','Y',' ')"NULL", CONCAT (DATA_TYPE, DATA_LENGTH) TYPE FROM USER_TAB_COLUMNSWHERETABLE_NAME = 'DEPT'
8.SQL> Example for startwith, connect by and prior
SELECT ENAME, JOB, LEVEL, EMPNO, MGR FROM EMP111 CONNECT BY PRIOREMPNO=MGRSTART WITH ENAME = 'RAJA'SELECT EMPNO, LPAD (‘ ‘, 6*(LEVEL – 1)) || ENAME “EMPLOYEE NAME” FROM EMP STARTWITH ENAME=’KING’ CONNECT BY PRIOR EMPNO = MGR
9. To find the database name
SELECT * FROM GLOBAL_NAME;
10.To convert the given no to word
SELECT TO_CHAR (TO_DATE (&NUM,'J'),'JSP') FROM DUAL;
11. To reverse12. How can I eliminate duplicate values in a table?
Choose one of the following queries to identify or remove duplicate rows from a table leaving onerecord:Method 1:DELETE FROM table_name A WHERE ROWID > (SELECT min (rowid) FROM table_name B
 
COMPLEX QUERIES
- 2 -WHERE A.key_values = B.key_values);Method 2:SQL> create table table_name2 as select distinct * from table_name1;SQL> drop table_name1;SQL> rename table_name2 to table_name1;Method 3: (thanks to Kenneth R Vanluvanee)SQL> Delete from my_table where rowid not in (select max (rowid) from my_table group bymy_column_name);Method 4: (thanks to Dennis Gurnick)SQL> delete from my_table t1 where exists (select 'x' from my_table t2 where t2.key_value1 =t1.key_value1And t2.key_value2 = t1.key_value2and t2.rowid > t1.rowid);Note: If you create an index on the joined fields in the inner loop, you for all intensive purposeseliminate N^2 operations (no need to loop through the entire table on each pass by a record).
13. How can I generate primary key values for my table?
Create your table with a NOT NULL column (say SEQNO). This column can now be populated withunique values:SQL> UPDATE table_name SET seqno = ROWNUM;Or use a sequence generator:SQL> CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1;SQL> UPDATE table_name SET seqno = sequence_name. NEXTVAL;Finally, create a unique index on this column.
14. How can I get the time difference between two date columns?
Select floor ((date1-date2)*24*60*60)/3600) || ' HOURS ' || floor ((((date1-date2)*24*60*60) -Floor (((date1-date2)*24*60*60)/3600)*3600)/60) || ' MINUTES ' || round ((((date1-date2)*24*60*60) -Floor (((date1-date2)*24*60*60)/3600)*3600 - (floor ((((date1-date2)*24*60*60) -Floor (((date1-date2)*24*60*60)/3600)*3600)/60)*60))) || ' SECS ' time_difference from...
15. How does one count different data values in a column?
Select dept, sum (decode (sex,'M', 1,0)) MALE, sum (decode (sex,'F', 1,0)) FEMALE, count(decode (sex,'M', 1,'F', 1)) TOTAL from my_emp_table group by dept;
16. How does one count/sum RANGES of data values in a column?
A value x will be between values y and z if GREATEST (x, y) = LEAST (x, z). Look at this example:Select f2, count (decode (greatest (f1, 59), least (f1, 100), 1, 0)) "Range 60-100",Count (decode (greatest (f1, 30), least (f1, 59), 1, 0)) "Range 30-59",Count (decode (greatest (f1, 29), least (f1, 0), 1, 0)) "Range 00-29"From my_table group by f2;For equal size ranges it might be easier to calculate it with DECODE (TRUNC (value/range), 0,rate_0, 1, rate_1,).
 
COMPLEX QUERIES
- 3 -E.g.Select ename "Name", sal "Salary", decode (trunc (f2/1000, 0), 0, 0.0,1, 0.1, 2, 0.2, 3, 0.31) "Taxrate"From my_table;
17. Can one only retrieve the Nth row from a table?
Ravi Pachalla provided this solution:SELECT f1 FROM t1 WHERE rowid = (SELECT rowid FROM t1 WHERE rownum <= 10MINUSSELECT rowid FROM t1 WHERE rownum < 10);
18. Can one only retrieve rows X to Y from a table?
To display rows 5 to 7, construct a query like this:SELECT * FROM tableX WHERE rowid in (SELECT rowid FROM tableX WHERE rownum <= 7MINUSSELECT rowid FROM tableX WHERE rownum < 5);
19. How does one select EVERY Nth row from a table?
One can easily select all even, odd, or Nth rows from a table using SQL queries like this:Method 1: Using a subquerySELECT *FROM EMP WHERE (ROWID, 0) IN (SELECT ROWID, MOD (ROWNUM, 4) FROMEMP);Method 2: Use dynamic views (available from Oracle7.2):SELECT * FROM (SELECT rownum rn, empno, ename FROM EMP) temp WHERE MOD(temp. ROWNUM, 4) = 0;
20. How does one select the TOP N rows from a table?
SELECT * FROM my_table a WHERE 10 >= (SELECT COUNT (DISTINCT maxcol) FROMmy_table bWHERE b.maxcol >= a.maxcol) ORDER BY maxcol DESC;
21. How does one code a tree-structured query?
This is definitely non-relational (enough to kill Codd and then make him roll in his grave) and is afeature I have not seen in the competition.The definitive example is in the example SCOTT/TIGER database, when looking at the EMP table(EMPNO and MGR columns). The MGR column contains the employee number of the "current"employee's boss.You have available an extra pseudo-column, LEVEL, that says how deep in the tree you are. Oraclecan handle queries with a depth up to 255.Select LEVEL, EMPNO, ENAME, MGR from EMP connect by prior EMPNO = MGR start with MGR isNULL;You can get an "indented" report by using the level number to sub-string or lpad a series of spacesandConcatenate that to the string.

Activity (17)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
payakkamron liked this
payakkamron liked this
Amit Kasana liked this
payakkamron liked this
Asgar Hussain liked this
sunny_dba liked this
sunny_dba liked this
ReaderTim5 liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->